Focused expertise on the SEO issues that impact your search rankings
Missing titles, descriptions, and proper metadata exports in Next.js App Router
Every page needs a unique, descriptive title (50-60 chars) and meta description (120-160 chars). SEO Expert catches pages with missing, duplicate, or poorly formatted metadata before they go live.
OpenGraph tags, Twitter Cards, and social sharing optimization for better CTR
When your page is shared on Slack, Twitter, or LinkedIn, it needs proper og:title, og:description, and og:image (1200x630px). Broken social previews hurt your click-through rate.
Canonical URLs, trailing slashes, and duplicate content prevention
Duplicate content dilutes your SEO authority. Canonical URLs tell search engines which version of a page is the 'original'. Missing canonicals can split your rankings across multiple URLs.
JSON-LD schemas for rich snippets - Organization, Product, Article, FAQ
Structured data enables rich snippets in search results — star ratings, FAQ dropdowns, product prices. These significantly increase click-through rates from search results.
Proper H1→H2→H3 structure for content organization and accessibility
Search engines use heading structure to understand your content hierarchy. Each page should have exactly one H1, with logical H2/H3 nesting. Broken hierarchy confuses both crawlers and users.
Alt text, next/image usage, and proper image SEO for visual search
Images without alt text are invisible to search engines and screen readers. In Next.js, using next/image with proper dimensions improves Core Web Vitals and enables automatic optimization.
Every PR is checked against these critical SEO rules
120-160 chars, unique per page, keyword-rich
og:title, og:description, og:image (1200x630)
Absolute URLs, consistent trailing slashes
Single H1, proper H1→H2→H3 structure
Descriptive alt for all content images
Organization, WebSite, Product, Article
All pages, lastModified, proper priority
Allow public, block admin, include sitemap
Use next/image, priority for LCP
Avoid unnecessary 'use client' for SEO
High priority| Medium priority
These are actual SEO problems that slip through code review every day. SEO Expert catches them automatically.
Problem: Page deployed without description — Google shows random text from page content
Impact: Lower CTR from search results, users don't know what the page is about
// ❌ Problem: No metadata export
export default function ProductPage() {
return <div>...</div>
}
// ✅ Fixed: Proper metadata
export const metadata = {
title: "Premium Widget | Acme Store",
description: "High-quality widget with 5-star reviews. Free shipping on orders over $50.",
}Problem: og:image URL returns 404 — shared links look broken on social media
Impact: Poor first impression, reduced sharing, lower engagement
// ❌ Problem: Relative or wrong URL
openGraph: {
images: ["/og-image.png"], // Relative URL fails
}
// ✅ Fixed: Absolute URL with dimensions
openGraph: {
images: [{
url: "https://example.com/og-image.png",
width: 1200,
height: 630,
alt: "Product preview",
}],
}Problem: Same content accessible at /product and /product/ — duplicate content issue
Impact: Split rankings, wasted crawl budget, diluted authority
// ❌ Problem: No canonical specified
export const metadata = {
title: "Product Page",
}
// ✅ Fixed: Explicit canonical URL
export const metadata = {
title: "Product Page",
alternates: {
canonical: "https://example.com/product",
},
}Problem: Product page without structured data — no rich snippets in search results
Impact: Lower visibility in search, competitors with rich snippets get more clicks
// ✅ Add JSON-LD for rich snippets
const jsonLd = {
"@context": "https://schema.org",
"@type": "Product",
name: "Premium Widget",
image: "https://example.com/widget.jpg",
aggregateRating: {
"@type": "AggregateRating",
ratingValue: "4.8",
reviewCount: "127",
},
}
// In your component:
<script type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
/>SEO Expert catches these in your PR — before they hit production and hurt your rankings.
"People search with ChatGPT and Perplexity now. Does SEO even matter?"
More than ever. AI search tools don't have their own index. They pull from Google, Bing, and the web. When ChatGPT answers a question, when Perplexity cites sources — they're surfacing content that ranks well in traditional search.
1. User asks ChatGPT a question
2. ChatGPT searches the web (using Bing)
3. Your page ranks high → ChatGPT cites your content
4. User clicks through to your site
AI search often shows just 1-2 sources — not ten blue links. If you're not in the top results, you're invisible. There's no page two to scroll to.
AI-powered search engine
Explicitly shows which sources it used — and those sources are ranked by traditional search signals.
OpenAI's search feature
Uses Bing results — your Bing SEO directly impacts AI visibility.
Anthropic's web search
Searches the web for current information — good SEO means good visibility in Claude answers.
One optimization, two discovery channels.
Rank well on Google → Get cited by AI tools.
SEO Expert understands framework-specific patterns. Whether you're using Next.js App Router, React with Helmet, or WordPress — it knows the right way to implement SEO.
generateMetadata, metadata exports, sitemap.ts, robots.ts
next/head, _document.tsx, getStaticProps SEO
React Helmet Async, dynamic meta tags, SPA SEO
Yoast/RankMath hooks, theme SEO, plugin integration
Scan Changes
Analyze page components, layouts, and meta files
Check Metadata
Verify title, description, OG tags, canonical
Validate Structure
Heading hierarchy, alt text, structured data
Report Issues
Actionable fixes with SEO impact assessment
SEO is complex enough to deserve dedicated attention
Find missing meta tags, broken OG images, and schema errors before they hit production
One missing canonical or noindex can tank your traffic — SEO Agent prevents that
Better titles, descriptions, and rich snippets mean more clicks from search results
Most teams discover SEO issues weeks later in Google Search Console.
SEO Expert catches them in your PR.
SEO Expert comes with 10+ built-in rules, but every team has unique requirements. Maybe you have specific meta tag conventions, custom structured data schemas, or internal SEO guidelines that go beyond the basics.
Create your own custom SEO rules. Write a YAML file, define what to check, and SEO Expert will enforce it on every PR. Your team's SEO standards become automated checks.
Custom meta length rules
Require descriptions between 140-155 chars
Specific OG image dimensions
Enforce exact 1200x630 for all pages
Required JSON-LD schemas
Mandate Product schema on all product pages
rules:
- id: seo_og_image_dimensions
agent: seo
title: OG image must be 1200x630
description: |
Ensure all OpenGraph images are
exactly 1200x630 for optimal
social sharing on all platforms.
why_important: |
Wrong dimensions cause cropping
on LinkedIn, Twitter, Slack.
importance: 7
match:
file_glob:
- '**/app/**/page.tsx'
- '**/app/**/layout.tsx'
checklist:
- Find all openGraph.images configs
- Verify width is 1200, height is 630
- Flag any different dimensions
examples:
bad: |
images: [{
url: '/og.png',
width: 800,
height: 400,
}]
good: |
images: [{
url: '/og.png',
width: 1200,
height: 630,
}]
tags:
- seo
- opengraph
- social-sharingAdd to .diffray/rules/seo/ — runs on every PR automatically.
of pages have missing meta descriptions
of images lack proper alt text
of sites have broken OG images
miss canonical URLs on new pages
Let SEO Expert catch technical SEO issues before they hurt your rankings. Free for 14 days, no credit card required.