← All Tools Technical Audit Tools
🏠 Overview
🔍 Site Audit
📍 Local SEO NEW
🤖 Robots
↪️ Redirects
🌍 Hreflang
⚡ CWV
🏷 Meta Tags
🌐 HTML
🎨 CSS
🔧 JS
📋 JSON-LD
🖼 Images
13
Audit Tools
70+
Checks per Audit
Free
Starting Plan
NEW
Local SEO Checker
🔍
Site Audit Silver+
Full technical SEO crawl — checks SEO issues, broken links, redirect chains, missing tags, schema detection and more across your whole site.
70+ checks · Deep crawl
📍
Local SEO Checker Silver+ NEW
Audit local ranking signals for Google Maps 3-pack — LocalBusiness schema completeness, NAP consistency, opening hours, geo coordinates and GBP signals.
Maps 3-pack · 24 checks
Core Web Vitals Silver+
Real Google PageSpeed data in plain English — LCP, CLS, INP with element-level fix instructions for each failing metric.
Google PageSpeed API
🤖
Robots & Sitemap Bronze+
Fetch, validate and analyse robots.txt and sitemap.xml — check crawl rules, disallow paths, AI bot permissions and sitemap structure.
Crawl control
↪️
Redirect Checker Bronze+
Follow every redirect hop for any URL — identify redirect chains and loops that waste link equity and slow page load.
Link equity · Chains
🌍
Hreflang Checker Bronze+
Validate hreflang tags for international SEO — detect missing return links, incorrect locale codes and missing x-default.
International SEO
🏷
Meta Tag Analyzer Free
Analyze all meta tags, OG tags, Twitter Cards & SEO directives from a URL or pasted HTML — with character counts and specific fixes.
Tags · OG · Twitter Card
🌐
HTML Checker Free
Validates HTML syntax, semantic structure, SEO best practices & accessibility attributes — from URL or pasted code.
Markup quality
🎨
CSS Checker Free
28-point CSS audit — syntax validation, !important overuse, @import blocking, font-display, accessibility violations and animation performance.
Style quality · 28 checks
🔧
JS Checker Free
18-point JS audit — security (eval, XSS), performance (sync XHR, large bundles), modern practices and memory leak detection.
Script quality · 18 checks
📋
JSON Checker Free
Deep Schema.org compliance for 10+ schema types — Article, Product, FAQPage, LocalBusiness, Event, HowTo and more. Required and recommended fields validated.
Structured data
🖼
Image Audit Bronze+
Audit every image on a page for format, alt text, dimensions, lazy loading and next-gen (WebP/AVIF) format adoption.
Performance · Alt text
Why Technical SEO is the Foundation
🔍
Crawlability First
Even the best content won't rank if Google can't reach, crawl or index it
Core Web Vitals
LCP, CLS and INP are confirmed Google ranking factors — fix them element by element
📍
Local SEO
LocalBusiness schema + NAP consistency = Google Maps 3-pack eligibility
🔗
Link Equity
Redirect chains waste PageRank at every hop — collapse them to single 301s
Analyze URL Silver+
🔍

Enter a URL and click Analyze to begin the audit

What We Check
  • 🏷️ On-Page SEO
  • Title tag — presence & length (50–60 chars)
  • Meta description — presence & length
  • H1 tag — single, correct placement
  • H2–H6 heading hierarchy & level skipping
  • Canonical tag — presence & relative/absolute
  • Robots meta directives (noindex, nofollow)
  • Open Graph tags — all required fields
  • Twitter/X Card tags
  • HTML lang attribute
  • Charset declaration
  • Word count & thin content detection
  • Content-to-HTML ratio
  • ⚡ Technical & Performance
  • HTTPS / SSL active
  • HTTP status code (200, 404, 403…)
  • Redirect detection
  • Mobile viewport meta tag
  • Page load TTFB
  • HTML page size
  • Render-blocking scripts in <head>
  • Images missing width/height attributes
  • Image alt attributes
  • Links with no anchor text
  • Deprecated HTML elements
  • Security headers presence
  • Favicon declared
  • Inline style usage
  • 🗂️ Schema & Structured Data
  • JSON-LD schema detection
  • Schema parse error detection
  • Schema types identified
  • 🔗 Quick Actions
  • → Check robots.txt & sitemap
  • → Check redirect chains
  • → Core Web Vitals detail
  • → Deep meta tag analysis
  • → Hreflang checker
Next steps:
Enter Domain to Test Bronze+
Related:
Enter URL to Check Bronze+

We'll follow every redirect and show you the full chain — redirect chains (A→B→C) lose link equity at each hop.

Related:
Enter URL to Check Bronze+

Hreflang tags tell Google which language/region each page targets. Incorrect implementation is one of the most common international SEO mistakes.

Related:
Enter URL to Analyse Bronze+

Uses Google's PageSpeed Insights API to fetch your Core Web Vitals, then explains each metric and gives you specific, actionable steps to improve it.

Related: 🔎 CLS Debugger
Meta Tag Source Free
🔗 From URL
📋 Paste HTML
Related: 🔗 OG Tag Generator 👁 SERP Preview
HTML Source Free
🔗 From URL
📋 Paste Code
Related:
CSS Source Free
🔗 From URL
📋 Paste Code
ℹ️ Tip: For inline styles, enter your page URL and we'll extract all <style> blocks automatically. For external .css files, enter the direct file URL (e.g. https://example.com/style.css) or paste your CSS in the Paste tab.
28 Checks Across 6 Categories
🔧 Syntax & Structure
  • Unbalanced curly braces
  • Missing semicolons after declarations
  • Empty rule blocks (dead code)
  • Duplicate selectors
  • Duplicate property declarations
  • HTTP (non-HTTPS) resource URLs
  • Mixed colour format inconsistency
Performance & Loading
  • File size & critical CSS guidance
  • Rule count & IE selector limit
  • Universal selector (*) performance
  • @import render-blocking
  • @font-face font-display strategy
  • Excessive custom fonts (>4)
  • Excessive !important usage
🎯 Specificity & Maintainability
  • ID selectors vs class selectors
  • Deep selector nesting (3+ levels)
  • CSS custom properties (variables) usage
  • Vendor prefix overuse
Accessibility
  • outline:none on :focus (WCAG 2.4.7)
  • Missing :focus-visible styles
  • Font sizes below 12px
  • user-select:none on readable content
  • overflow:hidden on body / html
🎬 Animation & Motion
  • Missing prefers-reduced-motion query
  • will-change overuse (GPU memory)
  • Non-composited animation properties
  • Layout-triggering transitions (reflow)
📱 Responsive & Compatibility
  • Fixed pixel widths (>600px) on mobile
  • Missing @media queries
  • CSS Grid without @supports fallback
  • CSS custom properties support
Related:
JavaScript Source Free
🔗 From URL
📋 Paste Code
ℹ️ Fetches inline <script> blocks from the page. For external .js files, enter the direct .js file URL.
Related:
JSON Source Free
🔗 From URL
📋 Paste JSON
ℹ️ Extracts all JSON-LD <script type="application/ld+json"> blocks from the page.
Related: 🗂 Schema Builder 🔬 Schema Debugger
Analyse Images Bronze+

Fetches the page and audits all img tags found

🖼

Enter a page URL and click Analyse to audit all images

Related: 🔎 CLS Debugger
Analyse Local Business Page Silver+
ℹ️ Enter your local business homepage or location page URL. We check 24 signals across LocalBusiness schema completeness, NAP on-page visibility, opening hours, geo coordinates, Google Maps embed, Google Business Profile link and review content.

Select your country to see country-specific directories in the NAP report. Leave on Auto-detect to read country from your schema.

✓ Schema CheckLocalBusiness JSON-LD completeness — 12 required & recommended fields
✓ NAP ConsistencyName, Address, Phone — on-page visibility and schema cross-match
✓ Maps SignalsGeo coords, Maps embed, GBP link, review content, sameAs links
24 Local SEO Signals We Audit
Schema & Structured Data (12 checks)
  • LocalBusiness JSON-LD present
  • Business name in schema
  • Full address (street, city, postcode, country)
  • Telephone number in schema
  • Opening hours (openingHoursSpecification)
  • Geo coordinates (lat & lng)
  • Price range (priceRange)
  • Aggregate rating & review count
  • sameAs links to GBP and directories
  • areaServed or serviceArea defined
On-Page NAP & Local Signals (12 checks)
  • Business name visible on page (H1/heading)
  • Phone number visible on page
  • Address visible in footer or contact section
  • Google Maps iframe embed present
  • Google Business Profile link
  • Review / testimonial content present
  • NAP: schema name matches page name
  • NAP: schema phone matches on-page phone
📚 What is the Google Maps 3-pack and how do I rank in it?
The Maps 3-pack is the block of three local businesses Google shows at the top of search results for local queries — e.g. "plumber in Sheffield" or "Italian restaurant near me". It is the single most valuable position for local businesses.

Key ranking factors:

1. Google Business Profile (GBP) — Your GBP listing must be claimed, verified and fully completed. It is the primary signal — without it you cannot appear in the 3-pack.

2. LocalBusiness schema on your website — Structured data connects your website to your GBP listing, confirms your address details and supplies opening hours, geo coordinates and service area to Google algorithmically. Missing schema forces Google to guess — and it often gets it wrong.

3. NAP Consistency — Your Name, Address and Phone must be identical across your website, GBP, and every directory listing (Yell, Yelp, Thomson Local, Facebook etc.). Inconsistencies dilute local authority.

4. Reviews — Quantity, recency and diversity of Google reviews are a strong Maps ranking signal. Respond to all reviews.

5. Proximity — Google biases results toward businesses physically closest to the searcher. You cannot change your location, but you can optimise your service area in GBP.
🗂 Complete LocalBusiness schema example (copy-paste ready)
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "The Sheffield Plumbing Company",
  "url": "https://example.com",
  "telephone": "+441142000000",
  "priceRange": "££",   // ££/£££ (UK), $$/$$$ (CA/US/AU), €€ (EU)
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "12 High Street",
    "addressLocality": "Sheffield",
    "addressRegion": "South Yorkshire",  // Province/State for CA/US/AU
    "postalCode": "S1 1AA",
    "addressCountry": "GB"   // ISO 3166-1: GB, US, CA, AU, DE, FR etc
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 53.3811,
    "longitude": -1.4701
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
      "opens": "08:00",
      "closes": "18:00"
    }
  ],
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.9",
    "reviewCount": "247",
    "bestRating": "5"
  },
  "sameAs": [
    "https://www.google.com/maps?cid=YOUR_CID",
    "https://www.yell.com/biz/example",
    "https://www.facebook.com/example"
  ]
}
→ Generate LocalBusiness schema in the Schema Builder ↗
🔍 How to find your Google Business Profile link
Method 1 — Google Search (easiest)
1. Go to google.com and search your exact business name + town — e.g. Sheffield Plumbing Company Sheffield
2. Your business Knowledge Panel will appear on the right (desktop) or at the top (mobile)
3. Click "View on Google Maps" or the Maps link
4. Copy the URL from your browser address bar — it will look like:
https://www.google.com/maps/place/Sheffield+Plumbing+Company/@53.38,-1.47,17z/data=... That URL is your GBP link. Add it to your sameAs array in your LocalBusiness schema.

Method 2 — Google Business Profile dashboard
1. Go to business.google.com and sign in
2. Select your business listing
3. Click "View on Maps" or "View on Search"
4. Copy the URL — this is your canonical GBP link

Method 3 — Short g.page link
In your GBP dashboard, look for Your Business Profile → Share profile. Google gives you a short link like:
https://g.page/your-business-name This also works in your sameAs array and is easier to remember.

Method 4 — Short maps.app.goo.gl link (easiest to share)
Google also generates a short link in the format:
https://maps.app.goo.gl/FDny4p92vjXc9awBA You get this by opening your listing in Google Maps on mobile and tapping Share → Copy link. This format is fully valid as a sameAs URL and is recognised by this checker.
⚠ Note: The short link hides your coordinates and CID. If you only have the short link and need to extract your lat/lng for your geo schema, follow the link in a browser — it will redirect to the full URL containing your coordinates (e.g. @53.2690502,-1.4431358). Copy those numbers for your schema.
💡 Tip: Add your GBP link in two places:
  1. In your LocalBusiness schema: "sameAs": ["https://maps.app.goo.gl/YOUR_LINK"]
  2. As a visible "Find us on Google Maps" link in your footer — this counts as an on-page local signal
📍 How to get your geo coordinates (latitude & longitude)
Step 1 — Go to maps.google.com

Step 2 — Search your business address

Step 3 — Right-click exactly on your business location pin

Step 4 — Click the coordinates shown at the top of the right-click menu (e.g. 53.3811, -1.4701) — this copies them to your clipboard

Step 5 — Paste into your LocalBusiness schema:
"geo": {
  "@type": "GeoCoordinates",
  "latitude": 53.3811,
  "longitude": -1.4701
}
💡 Tip: Make sure your pin is on your actual premises — not on the road outside or a nearby landmark. Precision matters for Maps proximity scoring.
Local SEO Improvement Checklist ?Work through these in order. Schema must be present before NAP consistency checks are meaningful. Each fix is independent — tackle highest-impact items first.
🗂 Add LocalBusiness JSON-LD schema — the single highest-impact fix. Without it Google cannot reliably display your business in Maps. ⚡ Easy Guide →
📞 Add telephone in E.164 format — e.g. "+441142000000". Required for NAP matching across directories. ⚡ Easy Guide →
📍 Add geo coordinates — right-click your premises in Google Maps, copy the lat/lng into your schema geo property. ⚡ Easy Guide →
🕐 Add opening hours — use openingHoursSpecification with dayOfWeek, opens and closes. ⚡ Easy Guide →
🔗 Add your GBP sameAs link — find your Google Business Profile URL and add it to the sameAs array. ⚡ Easy Guide →
🗺️ Embed a Google Maps iframe — add a maps embed to your contact page. A direct on-page local signal Google measures. ⚡ Easy Guide →
Add aggregateRating to schema — include ratingValue and reviewCount to unlock star ratings in search results. ⚡ Easy Guide →
📋 Ensure NAP matches across schema, website and GBP — name, address and phone must be character-for-character identical. Even "St" vs "Street" counts as a mismatch. ⚙ Medium Guide →
Related tools: 🗂 Schema Builder 🤖 Content & AEO Tools