Initial commit — SEO Guidelines & SmartCrawl reference
SmartCrawl plugin reference (11 docs): - Overview, configuration, titles & meta, schema, sitemaps, social/OG, redirects, breadcrumbs, content analysis, hooks/filters, known issues SEO strategy playbook (6 docs): - Keyword research, per-page-type selection, on-page optimization, local SEO, technical SEO, content strategy Reusable templates (3): - Site audit checklist, keyword research worksheet, page optimization checklist Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,194 @@
|
||||
# Technical SEO
|
||||
|
||||
Technical foundations that must be in place for any SEO effort to succeed. These affect how Google crawls, indexes, and ranks your site.
|
||||
|
||||
## Core Web Vitals
|
||||
|
||||
Google's page experience signals. Content relevance is still more important, but poor performance can hold you back.
|
||||
|
||||
### Metrics
|
||||
|
||||
| Metric | Target | What It Measures |
|
||||
|--------|--------|-----------------|
|
||||
| **LCP** (Largest Contentful Paint) | Under 2.5s | How fast the main content loads |
|
||||
| **INP** (Interaction to Next Paint) | Under 200ms | How responsive the page is to input |
|
||||
| **CLS** (Cumulative Layout Shift) | Under 0.1 | How much the layout shifts during load |
|
||||
|
||||
### How to Improve
|
||||
|
||||
**LCP:**
|
||||
- Optimize images (WebP/AVIF, proper sizing, lazy loading for below-fold)
|
||||
- Reduce server response time (caching, CDN)
|
||||
- Preload critical resources (fonts, hero images)
|
||||
- Minimize render-blocking CSS/JS
|
||||
|
||||
**INP:**
|
||||
- Minimize JavaScript execution time
|
||||
- Break up long tasks
|
||||
- Optimize event handlers
|
||||
- Defer non-critical JavaScript
|
||||
|
||||
**CLS:**
|
||||
- Set explicit width/height on images and embeds
|
||||
- Don't insert content above existing content dynamically
|
||||
- Use `font-display: swap` or preload web fonts
|
||||
- Reserve space for ads/embeds
|
||||
|
||||
### WordPress Specifics
|
||||
|
||||
- Use server-level caching (EA-Nginx proxy cache is already configured on our server)
|
||||
- Optimize images on upload (Smush or similar)
|
||||
- Minimize plugin count — each plugin adds overhead
|
||||
- Use Hummingbird or LiteSpeed Cache for asset optimization
|
||||
- Purge Nginx cache after changes: `rm -rf /var/cache/ea-nginx/proxy/<account>/*`
|
||||
|
||||
## Mobile-First Indexing
|
||||
|
||||
Google uses the **mobile version** of your site for indexing and ranking. There is no separate desktop index.
|
||||
|
||||
### Requirements
|
||||
|
||||
- [ ] All desktop content is also visible on mobile
|
||||
- [ ] Viewport meta tag present: `<meta name="viewport" content="width=device-width, initial-scale=1">`
|
||||
- [ ] Font size minimum 16px body text
|
||||
- [ ] Tap targets minimum 48x48px with 8px spacing
|
||||
- [ ] No horizontal scrolling
|
||||
- [ ] Content hidden in accordions/tabs is fine (as long as it's in the HTML)
|
||||
|
||||
### Testing
|
||||
|
||||
- Google's Mobile-Friendly Test
|
||||
- Search Console > Mobile Usability report
|
||||
- Chrome DevTools device emulator
|
||||
|
||||
## Crawlability and Indexability
|
||||
|
||||
### XML Sitemap
|
||||
|
||||
- Submit to Google Search Console
|
||||
- SmartCrawl generates this automatically
|
||||
- Verify at `yoursite.com/sitemap.xml`
|
||||
- Include all important pages, exclude thin/duplicate content
|
||||
|
||||
### Robots.txt
|
||||
|
||||
Recommended content:
|
||||
|
||||
```
|
||||
User-agent: *
|
||||
Allow: /
|
||||
Disallow: /wp-admin/
|
||||
Allow: /wp-admin/admin-ajax.php
|
||||
|
||||
Sitemap: https://yoursite.com/sitemap.xml
|
||||
```
|
||||
|
||||
**Do NOT block CSS/JS files** — Google needs them for mobile-first rendering.
|
||||
|
||||
### Crawl Budget
|
||||
|
||||
For small sites (<500 pages), crawl budget is rarely an issue. For larger sites:
|
||||
- Don't waste budget on filter pages, parameter URLs, or thin pagination
|
||||
- Use `noindex` on pages with no SEO value
|
||||
- Keep the sitemap clean (only valuable URLs)
|
||||
|
||||
### Index Status
|
||||
|
||||
Check Search Console > Pages report for:
|
||||
|
||||
| Status | Meaning | Action |
|
||||
|--------|---------|--------|
|
||||
| Indexed | Page is in Google | Good |
|
||||
| Discovered — not indexed | Google knows about it but hasn't indexed it | Improve content quality, add internal links |
|
||||
| Crawled — not indexed | Google crawled it but chose not to index | Content isn't valuable enough — improve or noindex |
|
||||
| Excluded by noindex | You set noindex | Intentional? If not, fix it |
|
||||
|
||||
### What to Noindex
|
||||
|
||||
- Thank you / confirmation pages
|
||||
- Internal search results
|
||||
- Tag archives with thin content
|
||||
- Author archives on single-author sites
|
||||
- Admin/login pages
|
||||
- Paginated archives
|
||||
- Media attachment pages
|
||||
|
||||
## Canonical URLs
|
||||
|
||||
### Self-Referencing Canonicals
|
||||
|
||||
Every page should have: `<link rel="canonical" href="https://example.com/current-page/">`
|
||||
|
||||
SmartCrawl handles this automatically for most cases.
|
||||
|
||||
### Choose One Format
|
||||
|
||||
Pick one and redirect all variations to it:
|
||||
|
||||
| Decision | Options |
|
||||
|----------|---------|
|
||||
| www vs non-www | `example.com` or `www.example.com` |
|
||||
| HTTP vs HTTPS | Always HTTPS |
|
||||
| Trailing slash | `/page/` or `/page` — pick one |
|
||||
|
||||
Redirect the other variations via `.htaccess` or server config (not SmartCrawl — this is a server-level concern).
|
||||
|
||||
## Structured Data
|
||||
|
||||
See [Schema Markup](../smartcrawl/schema-markup.md) for SmartCrawl implementation.
|
||||
|
||||
### Priority Order
|
||||
|
||||
| Schema Type | Rich Result | Priority |
|
||||
|-------------|-------------|----------|
|
||||
| **LocalBusiness** | Knowledge panel, maps | Every local business |
|
||||
| **FAQ** | Expandable Q&A in SERPs | Pages with Q&A content |
|
||||
| **BreadcrumbList** | Breadcrumb trail in SERPs | All pages (via Breadcrumbs module) |
|
||||
| **Event** | Date/time/location in SERPs | Event listings |
|
||||
| **Course** | Course listing | Educational offerings |
|
||||
| **Article** | Article metadata | Blog posts |
|
||||
| **Product** | Price, availability, rating | WooCommerce products |
|
||||
| **Review / AggregateRating** | Stars in results | Review pages (genuine reviews only) |
|
||||
|
||||
### Validation
|
||||
|
||||
Always validate after deployment:
|
||||
|
||||
1. [Google Rich Results Test](https://search.google.com/test/rich-results)
|
||||
2. [Schema.org Validator](https://validator.schema.org/)
|
||||
3. Google Search Console > Enhancements (ongoing monitoring)
|
||||
|
||||
## HTTPS
|
||||
|
||||
- **Required.** No exceptions. Google uses HTTPS as a ranking signal.
|
||||
- All HTTP URLs should 301 redirect to HTTPS
|
||||
- Mixed content (HTTP resources on HTTPS pages) must be fixed
|
||||
- SSL certificates are managed via cPanel on our server
|
||||
|
||||
## Page Speed Quick Wins
|
||||
|
||||
| Action | Impact | Effort |
|
||||
|--------|--------|--------|
|
||||
| Enable server-level caching | High | Already done (EA-Nginx) |
|
||||
| Optimize images (WebP, compression) | High | Low |
|
||||
| Lazy load below-fold images | Medium | Low |
|
||||
| Minimize active plugins | Medium | Low |
|
||||
| Preload critical fonts | Medium | Low |
|
||||
| Defer non-critical JavaScript | Medium | Medium |
|
||||
| Use a CDN | Medium | Medium |
|
||||
| Inline critical CSS | Low | High |
|
||||
|
||||
## Technical SEO Audit Checklist
|
||||
|
||||
- [ ] Site loads over HTTPS (no mixed content)
|
||||
- [ ] XML sitemap exists and is submitted to Search Console
|
||||
- [ ] Robots.txt is correct (not blocking important resources)
|
||||
- [ ] All pages have self-referencing canonical tags
|
||||
- [ ] One URL format (www/non-www, slash/no-slash) with redirects for the rest
|
||||
- [ ] No orphan pages (every page has internal links)
|
||||
- [ ] Core Web Vitals pass (LCP < 2.5s, INP < 200ms, CLS < 0.1)
|
||||
- [ ] Mobile-friendly test passes
|
||||
- [ ] No 404 errors on important pages (check Search Console)
|
||||
- [ ] Structured data validates without errors
|
||||
- [ ] No duplicate title tags or meta descriptions
|
||||
- [ ] Images have alt text and are optimized
|
||||
Reference in New Issue
Block a user