AI and operations
Technical SEO: Crawlability, Metadata and Performance
Check crawl access, metadata, supported structured data, image delivery and page performance on a local business website.

Introduction
Your website is built, your pages are live, and your content is in place. Now it is time to make sure search engines can actually find, crawl, and understand every page you have created. If you have not completed the earlier phases, go back to Phase 3: website development or the full local SEO series overview. Technical SEO is the foundation that everything else sits on. Without it, even the best content in the world will struggle to rank.
Time Estimate: 2-4 hours (spread over multiple sessions)
Why Technical SEO Matters
Technical SEO helps search engines fetch, render and interpret useful pages. Start with access and status codes, then metadata, canonical signals, structured data and performance. Fixing these issues removes obstacles; it does not establish which change caused a ranking movement.
This guide covers every technical optimization you need, with specific Claude prompts to implement each one. If you want to use Claude Code for the implementation, the prompts below are ready to paste. By the end, your site will be technically sound, fast, and ready to compete for top positions in local search results.
What You Will Achieve
- A full SEO audit identifying every issue on your site
- Accurate titles and descriptions that help searchers understand what each page offers
- Schema markup that qualifies your pages for rich snippets in search results
- Page speed scores of 90+ on Google PageSpeed Insights
- Properly optimized images that load fast without sacrificing quality
- Clean URL structure that search engines and users both understand
- Correct robots.txt and XML sitemap configuration
Running a Comprehensive SEO Audit
Before fixing anything, you need to know what is broken. A thorough SEO audit gives you a prioritized list of issues so you can tackle the highest-impact items first.
What to Check in Your Audit
1. Crawlability and Indexing
These are the fundamentals. If Google cannot crawl your pages, nothing else matters.
- Does your robots.txt file exist and is it configured correctly?
- Is your XML sitemap generated and accessible?
- Are all important pages returning a 200 status code?
- Are there any redirect chains (page A redirects to B, which redirects to C)?
- Can Google actually reach every page through internal links?
2. On-Page Elements
- Does every page have a unique title tag?
- Does every page have a unique meta description?
- Is the heading hierarchy correct (one H1 per page, followed by H2s and H3s)?
- Are images using descriptive alt text?
- Are URLs clean and keyword-relevant?
3. Performance
- What are your Core Web Vitals scores?
- How fast does your largest content element load?
- Are there layout shifts as the page renders?
- Is JavaScript blocking the page from becoming interactive?
4. Mobile Experience
- Does every page work correctly on mobile?
- Are touch targets large enough (at least 48x48 pixels)?
- Is text readable without zooming?
- Is there any horizontal scrolling?
Free Tools for Your Audit
You do not need expensive tools for a thorough audit. Google's own Search Console documentation walks through the basics. These free options cover everything:
- Google Search Console shows crawl errors, index coverage, and Core Web Vitals data straight from Google
- Google PageSpeed Insights tests performance on both mobile and desktop
- Google Rich Results Test validates your schema markup
- Screaming Frog (free up to 500 URLs) crawls your entire site and reports technical issues
- Chrome DevTools is built into every Chrome browser for debugging performance
Run Your Audit with Claude
claude "Perform a comprehensive technical SEO audit on my local business website.
My website is built with Next.js 15 and deployed on Vercel.
Check these areas in detail:
1. CRAWLABILITY
- Does robots.txt exist at /public/robots.txt?
- Is there an XML sitemap being generated?
- Are there any orphan pages (pages not linked from anywhere)?
- Check for redirect chains or broken links
2. ON-PAGE SEO
- Review every page.tsx file for title tags and meta descriptions
- Check heading hierarchy (H1, H2, H3 usage)
- Verify all images have alt text
- Review URL structure for all routes
3. TECHNICAL ELEMENTS
- Check for canonical URL implementation
- Verify Open Graph tags exist on all pages
- Look for any duplicate content issues
- Check if JSON-LD schema markup is implemented
4. PERFORMANCE
- Review Next.js Image component usage
- Check for any large unoptimized assets
- Look for render-blocking resources
- Verify lazy loading is implemented
Create a prioritized list of every issue found, categorized as:
- CRITICAL (fix immediately)
- HIGH (fix this week)
- MEDIUM (fix this month)
- LOW (fix when convenient)
Include specific file paths and line numbers for each issue."Tip: Run this audit every time you make significant changes to your site. In our experience at Luminous Digital Visions, new issues creep in surprisingly fast, especially after adding new pages or updating dependencies.
Meta Tags Optimization
Meta tags are the first thing potential customers see in search results. Your title tag and meta description are essentially a miniature advertisement. The keywords you identified during Phase 2: keyword research will drive your tag copy. Get them right and you will see more clicks, even without improving your actual ranking position.
Title Tags
Title tags appear as the clickable blue headline in Google search results. They are one of the strongest on-page ranking signals.
Title Tag Rules:
- Keep them under 60 characters. Google truncates anything longer, which looks unprofessional and loses important keywords.
- Put your primary keyword near the front. "Plumbing Services in San Diego" is better than "Welcome to Our San Diego Plumbing Services Page."
- Include your city name. For local businesses, this is non-negotiable.
- Make each one unique. No two pages should share the same title tag.
- Add your brand name at the end. Use a pipe or dash separator: "Drain Cleaning San Diego | ABC Plumbing"
Title Tag Formula:
[Primary Keyword] in [City] | [Business Name]Examples:
- Homepage:
Professional Plumbing Services in San Diego | ABC Plumbing - Service page:
Drain Cleaning & Repair in San Diego | ABC Plumbing - Location page:
Trusted Plumber in La Jolla, CA | ABC Plumbing
Meta Descriptions
Meta descriptions appear as the grey text below the title tag in search results. They do not directly affect rankings, but they significantly impact click-through rates.
Meta Description Rules:
- Keep them under 160 characters. Anything longer gets truncated.
- Include a call-to-action. Phrases like "Call today," "Get a free quote," or "Schedule now" drive clicks.
- Mention your primary keyword. Google bolds matching search terms in the description.
- Make each one unique and compelling. This is your sales pitch in two sentences.
Meta Description Formula:
[Value proposition with keyword]. [Unique selling point]. [Call-to-action] — [Phone number or action].Examples:
- Homepage:
Professional plumbing services in San Diego with 24/7 emergency response. Licensed, insured, and trusted by 2,000+ homeowners. Call (555) 123-4567 for a free estimate. - Service page:
Drain cleaning in San Diego. Read our service scope and request an appointment. We confirm availability when we respond.
Open Graph Tags
Open Graph tags control how your pages appear when shared on social media platforms like Facebook, LinkedIn, and Twitter/X. They do not affect search rankings directly, but a well-formatted social share can drive significant traffic.
Essential Open Graph Tags:
// In your Next.js page or layout metadata
export const metadata = {
openGraph: {
title: 'Professional Plumbing Services in San Diego',
description: 'Licensed plumber serving San Diego County. 24/7 emergency service, free estimates.',
url: 'https://www.yoursite.com',
siteName: 'ABC Plumbing',
images: [
{
url: 'https://www.yoursite.com/og-image.jpg',
width: 1200,
height: 630,
alt: 'ABC Plumbing - Professional Plumbing Services in San Diego',
},
],
locale: 'en_US',
type: 'website',
},
twitter: {
card: 'summary_large_image',
title: 'Professional Plumbing Services in San Diego',
description: 'Licensed plumber serving San Diego County. 24/7 emergency service.',
images: ['https://www.yoursite.com/og-image.jpg'],
},
}Implement Meta Tags with Claude
claude "Optimize all meta tags across my entire Next.js website.
For EVERY page, ensure:
1. TITLE TAGS
- Under 60 characters
- Primary keyword near the front
- City name included for local pages
- Business name at the end with pipe separator
- Each page has a unique title
2. META DESCRIPTIONS
- Under 160 characters
- Include primary keyword
- End with a call-to-action
- Each page has a unique description
3. OPEN GRAPH TAGS
- og:title, og:description, og:image, og:url, og:type
- Twitter card tags (summary_large_image)
- Proper image dimensions (1200x630)
4. ADDITIONAL META TAGS
- Canonical URLs on every page
- Viewport meta tag for mobile
- Language declaration
Use Next.js metadata API (export const metadata) in each page.tsx.
Provide the exact title and description for every page on the site."
Choose structured data for the actual page
Use a self-referencing canonical and metadata that describe the visible page. For an article, connect the author to a real profile and preserve the original publication date. Update the modification date when the article changes substantially. Breadcrumbs should follow the site’s actual hierarchy.
Only describe services, reviews, prices and organizations that the page supports. Do not attach sample ratings or invented business details to a live page. Validate the generated output after a template change.
FAQ content can still help readers, but Google no longer displays FAQ rich results. HowTo rich results are also retired. Keep useful answers for their content value and consult Google’s documentation updates when reviewing supported features.
Page Speed Optimization
Page speed affects the customer experience. Evaluate Core Web Vitals alongside content relevance, usability and successful task completion. A good performance score does not guarantee a search position. See Google’s page experience guidance.
Core Web Vitals Targets
You need to hit these thresholds to pass Google's assessment:
| Metric | Good | Needs Improvement | Poor |
|---|---|---|---|
| LCP (Largest Contentful Paint) | < 2.5s | 2.5s - 4.0s | > 4.0s |
| INP (Interaction to Next Paint) | < 200ms | 200ms - 500ms | > 500ms |
| CLS (Cumulative Layout Shift) | < 0.1 | 0.1 - 0.25 | > 0.25 |
LCP measures how long it takes for the biggest visible element (usually a hero image or heading) to load. INP measures how responsive the page feels during user interactions. CLS measures how much the layout shifts around as elements load in.
Next.js Image Component
The single biggest performance win for most sites is proper image handling. The Next.js Image component handles optimization automatically.
import Image from 'next/image'
// Instead of <img src="/hero.jpg" />
<Image
src="/hero.jpg"
alt="Professional plumbing services in San Diego"
width={1200}
height={600}
priority // Only use for above-the-fold images
placeholder="blur"
blurDataURL="data:image/jpeg;base64,/9j/4AAQ..."
/>The priority prop should only go on your largest above-the-fold image (typically the hero image). Every other image below the fold should lazy load by default, which the Next.js Image component does automatically.
Code Splitting
Next.js splits code automatically by route, but you can go further with dynamic imports for heavy components.
import dynamic from 'next/dynamic'
// Load the map component only when needed
const GoogleMap = dynamic(() => import('@/components/GoogleMap'), {
loading: () => <div className="h-64 bg-gray-100 animate-pulse" />,
ssr: false,
})This keeps your initial bundle small and loads heavy components only when the user actually needs them.
Font Optimization
Fonts are a common source of layout shift and slow loads. Next.js has built-in font optimization.
import { Inter } from 'next/font/google'
const inter = Inter({
subsets: ['latin'],
display: 'swap',
preload: true,
})Using next/font eliminates the external network request to Google Fonts and prevents the flash of unstyled text that causes CLS issues.
Optimize Page Speed with Claude
claude "Optimize my Next.js website for maximum page speed. Target 90+ on PageSpeed Insights.
Current setup: Next.js 15, Tailwind CSS, deployed on Vercel.
Implement these optimizations:
1. IMAGE OPTIMIZATION
- Replace all <img> tags with Next.js Image component
- Add priority prop to above-the-fold hero images only
- Add blur placeholders for all images
- Verify all images have width and height set
2. CODE SPLITTING
- Dynamic import any components over 50KB
- Lazy load the Google Maps embed
- Lazy load any contact form modals
- Defer loading of analytics scripts
3. FONT OPTIMIZATION
- Use next/font for all Google Fonts
- Set display: swap to prevent layout shift
- Preload only the font weights actually used
4. CSS OPTIMIZATION
- Purge unused Tailwind classes in production
- Verify tailwind.config.ts content paths are correct
- Inline critical CSS for above-the-fold content
5. RENDERING STRATEGY
- Use Static Site Generation (SSG) for all pages that do not change often
- Verify pages are not accidentally using client-side rendering
- Check for unnecessary 'use client' directives
6. THIRD-PARTY SCRIPTS
- Load Google Analytics with next/script strategy='afterInteractive'
- Defer all non-critical third-party scripts
- Remove any unused scripts or dependencies
Run a before-and-after comparison of bundle sizes."
Image Optimization
Inspect the network report to identify which images contribute most to the page download. Resize oversized assets, compare formats at acceptable visual quality and retest the actual page. Optimize the largest visible image before spending time on tiny icons.
WebP Format
Compare WebP, AVIF and JPEG for photographs, and preserve PNG or SVG where their characteristics suit the asset. Browser support, transparency, legibility and file size matter more than requiring one format for every image.
If you are using the Next.js Image component, WebP conversion happens automatically in production. But if you are placing images in the /public folder for direct use, convert them yourself.
Compression Guidelines
| Image Type | Recommended Quality | Typical File Size |
|---|---|---|
| Hero/Banner images | 80-85% quality | 80-150 KB |
| Service page images | 75-80% quality | 40-80 KB |
| Thumbnails | 70-75% quality | 15-30 KB |
| Icons and logos | PNG or SVG | 5-15 KB |
Responsive Images
Do not serve a 2000px-wide image to a mobile phone with a 375px-wide screen. The Next.js Image component handles this with the sizes prop.
<Image
src="/service-hero.jpg"
alt="Drain cleaning service in San Diego"
width={1200}
height={600}
sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 1200px"
/>A responsive image source set lets the browser choose an appropriate resource for the viewport and display density. Check the selected resource in developer tools on both mobile and desktop.
Alt Text Best Practices
Alt text serves two purposes: accessibility for screen reader users and SEO signals for search engines.
Good alt text:
alt="Licensed plumber repairing kitchen sink drain in San Diego home"— Descriptive, includes keyword naturallyalt="Before and after drain cleaning results"— Describes the image content
Bad alt text:
alt="image1"— Tells nobody anythingalt="plumber plumbing San Diego plumber San Diego plumbing services"— Keyword stuffingalt=""— Empty alt text (acceptable only for decorative images)
Optimize All Images with Claude
claude "Audit and optimize every image on my Next.js website.
For each image, ensure:
1. FORMAT
- Next.js Image component used (not raw <img> tags)
- WebP conversion enabled for production
- SVG used for icons and logos where appropriate
2. SIZING
- Width and height attributes set on every image
- Responsive sizes prop configured for different viewports
- No images larger than necessary for their display size
3. LOADING
- Priority prop on above-the-fold hero images only
- All other images lazy loaded (default behavior)
- Blur placeholders added for better perceived performance
4. ALT TEXT
- Every image has descriptive, keyword-relevant alt text
- Alt text describes the actual image content
- No keyword stuffing in alt attributes
- Decorative images use alt='' with role='presentation'
5. FILE SIZES
- Flag any image over 200KB
- Suggest compression for oversized images
- Recommend removing any unused images from /public
List every image found, its current status, and what needs to change."
URL Structure & Configuration
Clean URLs help both search engines and users understand what a page is about before they even visit it. They are also a minor ranking factor. The URL structure you defined during Phase 3: website development should already follow these patterns, but it is worth verifying.
URL Best Practices
Rules for Clean URLs:
- Use lowercase only.
/Services/Drain-Cleaningshould be/services/drain-cleaning - Use hyphens, not underscores. Google treats hyphens as word separators.
/drain-cleaningis correct./drain_cleaningis not. - Include your target keyword.
/services/drain-cleaningis better than/services/service-3 - Keep them short. Aim for 3-5 words after the domain.
/services/residential-drain-cleaning-and-repair-serviceis too long. - Use a logical hierarchy. URLs should reflect your site structure:
/services/drain-cleaning,/locations/la-jolla - No special characters. Avoid query strings, session IDs, or encoded characters in public-facing URLs.
Good URL Examples:
https://www.yoursite.com/services/drain-cleaning
https://www.yoursite.com/services/water-heater-repair
https://www.yoursite.com/locations/la-jolla
https://www.yoursite.com/locations/san-diego
https://www.yoursite.com/about
https://www.yoursite.com/contactRobots.txt Configuration
The robots.txt file lives at the root of your site and tells search engine crawlers which pages to crawl and which to skip.
# robots.txt for a Next.js local business website
User-agent: *
Allow: /
# Block admin and API routes
Disallow: /api/
Disallow: /_next/
Disallow: /admin/
# Reference your sitemap
Sitemap: https://www.yoursite.com/sitemap.xmlIn Next.js 15 with the App Router, create this at app/robots.ts:
import { MetadataRoute } from 'next'
export default function robots(): MetadataRoute.Robots {
return {
rules: {
userAgent: '*',
allow: '/',
disallow: ['/api/', '/_next/', '/admin/'],
},
sitemap: 'https://www.yoursite.com/sitemap.xml',
}
}XML Sitemap Configuration
Your sitemap tells Google about every page on your site and how important each one is. In Next.js 15, you can generate it programmatically:
// app/sitemap.ts
import { MetadataRoute } from 'next'
export default function sitemap(): MetadataRoute.Sitemap {
const baseUrl = 'https://www.yoursite.com'
return [
{ url: baseUrl, lastModified: new Date(), changeFrequency: 'weekly', priority: 1.0 },
{ url: `${baseUrl}/about`, lastModified: new Date(), changeFrequency: 'monthly', priority: 0.8 },
{ url: `${baseUrl}/contact`, lastModified: new Date(), changeFrequency: 'monthly', priority: 0.8 },
{ url: `${baseUrl}/services`, lastModified: new Date(), changeFrequency: 'weekly', priority: 0.9 },
{ url: `${baseUrl}/services/drain-cleaning`, lastModified: new Date(), changeFrequency: 'monthly', priority: 0.8 },
// Add all your service pages
{ url: `${baseUrl}/locations/san-diego`, lastModified: new Date(), changeFrequency: 'monthly', priority: 0.8 },
// Add all your location pages
]
}Implement URL Structure and Configs with Claude
claude "Review and fix the URL structure, robots.txt, and sitemap for my Next.js website.
1. URL AUDIT
- Check all route folders use lowercase with hyphens
- Verify URLs include target keywords
- Flag any URLs that are too long or use underscores
- Ensure consistent hierarchy (services/[slug], locations/[slug])
2. ROBOTS.TXT
- Create app/robots.ts using Next.js MetadataRoute
- Allow all public pages
- Block API routes, _next, and any admin routes
- Include sitemap reference with full production URL
3. XML SITEMAP
- Create app/sitemap.ts using Next.js MetadataRoute
- Include every public page with correct priority:
- Homepage: 1.0
- Service overview: 0.9
- Individual services: 0.8
- Location pages: 0.8
- About/Contact: 0.7
- Set appropriate changeFrequency for each page type
- Use the production domain: [YOUR DOMAIN]
4. CANONICAL URLS
- Verify every page has a canonical URL in metadata
- Ensure canonical URLs use the production domain (not localhost)
- Check for any duplicate content issues
Implement all changes and verify the sitemap is accessible at /sitemap.xml."Tip: After deploying these changes, submit your sitemap to Google Search Console. Go to Search Console, click "Sitemaps" in the left menu, enter your sitemap URL, and click "Submit." Google decides when to read it, and crawling can take from a few days to a few weeks. To submit sitemaps and check indexing automatically after every deploy, follow our Google Search Console API guide.
Frequently Asked Questions
Technical SEO refers to optimizations that help search engines crawl, index, and understand your website. It includes things like page speed, schema markup, meta tags, sitemaps, and URL structure. Without proper technical SEO, even excellent content may not rank because search engines struggle to process it.
Visit pagespeed.web.dev and enter your website URL. The tool will analyze both mobile and desktop versions and give you a score from 0 to 100, along with specific recommendations. Aim for 90 or above on both mobile and desktop.
Schema markup is code that helps search engines understand your content. For local businesses, it tells Google your business name, address, phone number, hours, services, and more. Without it, you are leaving rich snippet opportunities on the table. Sites with proper schema markup are 2-3 times more likely to appear in enhanced search results.
Run a full audit at least once per quarter. After any major site changes — adding new pages, redesigning sections, or updating dependencies — run a focused audit on the affected areas. Google's algorithms and best practices evolve, so regular audits catch new issues before they impact rankings.
Core Web Vitals are three specific metrics Google uses to measure user experience: LCP (how fast the main content loads), INP (how responsive the page feels during interactions), and CLS (how much the layout shifts during loading). Google has confirmed these are ranking factors, and sites that pass all three thresholds have a measurable ranking advantage.
WebP is a useful option for many images, but test the result against JPEG or AVIF and inspect small text and fine detail. Framework image optimization also depends on configuration and hosting; verify the response format and cache behavior in your deployed build.
For most local business websites, your robots.txt should allow all public pages, block API routes and internal framework files, and reference your XML sitemap location. Keep it simple. The most common mistake is accidentally blocking important pages, which prevents Google from indexing them.
Use Google's Rich Results Test at search.google.com/test/rich-results. Paste your page URL and the tool will show you exactly which schema types it detects and whether they are valid. Fix any errors or warnings before moving on. You can also use the Schema Markup Validator at validator.schema.org for more detailed validation.
Google sometimes rewrites title tags in search results if it thinks its version better matches the search query. This happens most often when title tags are too long, do not match page content, or are stuffed with keywords. The fix is to write concise, accurate title tags under 60 characters that genuinely describe the page content.
Write a specific description of the page rather than a generic keyword list. Google may generate a different snippet from the page content. Compare Search Console clicks and impressions for similar queries and positions; a CTR change alone does not establish a ranking effect.
Crawl budget is the number of pages Google will crawl on your site within a given timeframe. For most local business websites with under 500 pages, crawl budget is not a concern — Google will crawl everything without issue. It becomes relevant for large sites with tens of thousands of pages. That said, keeping your site free of unnecessary URLs (duplicate pages, parameter-based URLs, old drafts) ensures Google spends its crawl budget on your important pages rather than wasting time on low-value ones.
A canonical tag is an HTML element that tells search engines which version of a page is the "official" one. You need them when the same content is accessible at multiple URLs — for example, if yoursite.com/services and yoursite.com/services/ both resolve to the same page, or if URL parameters create duplicate versions like yoursite.com/services?ref=email. In Next.js, set canonical URLs in your metadata export for every page to point to the clean, preferred URL.
Hreflang is an HTML attribute that tells Google which language and regional version of a page to serve to users in different locations. Most local businesses serving a single language in a single region do not need hreflang. You would need it if your site serves content in multiple languages (for example, English and Spanish versions of every page) or if you have region-specific versions targeting different countries. If you do serve a bilingual community, implementing hreflang correctly prevents Google from treating your Spanish and English pages as duplicate content.
A hard 404 is a page that returns a proper 404 HTTP status code, correctly telling search engines the page does not exist. A soft 404 is a page that returns a 200 OK status code but displays "page not found" content — effectively lying to search engines by saying the page is fine when it is not. Soft 404s are worse because Google wastes crawl budget on them and may keep them indexed. Check Google Search Console under the "Pages" report to find soft 404 issues, and fix them by returning a proper 404 status code or redirecting to a relevant page.
A redirect chain occurs when a URL redirects to another URL, which then redirects to yet another URL. For example, Page A redirects to Page B, which redirects to Page C. Each redirect in the chain adds latency (typically 100-300ms per hop) and loses a small amount of link equity. Google will follow up to about 10 redirects, but the more hops in the chain, the less authority reaches the final destination. Fix redirect chains by updating each redirect to point directly to the final destination URL.
Render-blocking resources are CSS stylesheets and JavaScript files that prevent the browser from displaying content until they are fully downloaded and processed. When PageSpeed Insights flags render-blocking resources, it means your page cannot paint anything until those files load. Fix this by deferring non-critical JavaScript with async or defer attributes, inlining critical CSS for above-the-fold content, and using next/dynamic for heavy components. In Next.js, the framework handles much of this automatically, but third-party scripts and custom CSS files are common offenders.
Lazy loading defers the loading of off-screen content until the user scrolls near it. For images, the Next.js Image component lazy loads by default — only add the priority prop to your above-the-fold hero image. For other content, use next/dynamic to lazy load heavy components like maps, video players, and contact form modals. Avoid lazy loading anything visible in the initial viewport, as this actually hurts LCP scores. Also avoid lazy loading critical navigation elements or content that search engines need to see immediately.
Use three tools in sequence. First, Google's Rich Results Test (search.google.com/test/rich-results) checks whether your structured data qualifies for rich results and flags errors. Second, the Schema Markup Validator (validator.schema.org) provides more granular validation against the full schema.org specification. Third, after deployment, monitor the "Enhancements" section in Google Search Console to see which rich result types Google has detected and any ongoing issues. Test after every schema change, not just after the initial implementation.
Mobile-first indexing means Google primarily uses the mobile version of your site for indexing and ranking, not the desktop version. This has been the default for all websites since 2023. In practical terms, it means your mobile site must have the same content, structured data, and meta tags as your desktop version. If content is hidden behind "read more" toggles or tabs on mobile, Google still indexes it. But if your mobile version serves completely different or reduced content compared to desktop, you could lose rankings. Test your site using Chrome DevTools mobile emulation to verify content parity.
AMP (Accelerated Mobile Pages) is no longer a requirement for appearing in Google's Top Stories carousel or any other search feature. Google removed the AMP requirement in 2021. While AMP pages still work and load quickly, they come with significant development overhead and restrictions on JavaScript and CSS. For most local businesses, a well-optimized Next.js site with good Core Web Vitals scores will perform just as well or better in search results without the limitations of AMP. Invest your time in optimizing your regular pages instead.
Google can render JavaScript, but it is a two-phase process. In the first phase, Google crawls and indexes the raw HTML. In the second phase (which can be delayed by hours or days), Google renders the JavaScript and indexes the dynamically generated content. For local business sites using Next.js with Static Site Generation or Server-Side Rendering, this is not a concern because the HTML is fully rendered before it reaches Google. However, if you are using client-side rendering (pages that load as empty shells and fill in with JavaScript), critical content may not be indexed promptly. Use View Source in your browser to check — if your content is visible in the raw HTML, Google can index it immediately.
Google has publicly stated that it ignores the priority and changeFrequency values in XML sitemaps. However, setting them does not hurt, and some other search engines (like Bing) may still reference them. The most useful field in your sitemap is lastModified, which tells search engines when a page was last updated. Set this to the actual date of the last meaningful content change — not the current date on every build — so Google knows which pages have genuinely new content worth recrawling.
Beyond Allow and Disallow, there are a few useful directives. Crawl-delay asks bots to wait a specified number of seconds between requests (Google ignores this, but Bing respects it). Sitemap points crawlers to your XML sitemap. You can also target specific bots with User-agent directives — for example, blocking AI training crawlers like GPTBot or CCBot while allowing Googlebot. Never block CSS or JavaScript files in robots.txt, as Google needs them to render your pages correctly for mobile-first indexing.
Next Steps
Technical SEO Optimization Complete
You should now have:
- A complete SEO audit with all critical issues identified and fixed
- Optimized title tags and meta descriptions on every page
- Comprehensive JSON-LD schema markup (LocalBusiness, Service, FAQPage, BreadcrumbList, Organization)
- Page speed scores of 90+ on both mobile and desktop
- Properly optimized images with WebP format, lazy loading, and descriptive alt text
- Clean, keyword-rich URL structure
- Correctly configured robots.txt and XML sitemap
Verify Your Work:
- Run Google PageSpeed Insights on your homepage and 2-3 key pages
- Test schema markup with Google Rich Results Test
- Submit your sitemap in Google Search Console
- Check robots.txt is accessible at yoursite.com/robots.txt
- Open your site on mobile and verify it loads in under 3 seconds
Testing Checklist:
- [ ] Every page has a unique title tag under 60 characters
- [ ] Every page has a unique meta description under 160 characters
- [ ] Schema markup validates without errors in Rich Results Test
- [ ] PageSpeed Insights score is 90+ on mobile
- [ ] All images use Next.js Image component with alt text
- [ ] XML sitemap includes all public pages
- [ ] Robots.txt is properly configured
- [ ] No broken links or redirect chains
Ready for Phase 5: Content Enhancement & Strategy
In the next phase, you will enhance your content depth, analyze competitors, implement semantic SEO with semantically related keywords, and build E-E-A-T signals that establish your authority. After that, advanced optimization strategies and the monitoring and analytics guide will help you maintain and grow your rankings. If you need professional help with any of these phases, our web development services team handles technical SEO implementation daily.
Continue to Phase 5 when ready.
For implementation support, explore digital growth services.