# Titles & Meta Descriptions SmartCrawl's Titles & Meta module controls how every page on your site appears in search results and browser tabs. It uses a macro/variable system for global templates with per-post overrides. ## Template Macros SmartCrawl uses `%%variable%%` syntax. The full list is accessible via the **"Browse Macros"** button in the Titles & Meta admin screen. ### Core Macros | Macro | Output | |-------|--------| | `%%title%%` | Post/page title | | `%%sitename%%` | Site name (from Settings > General) | | `%%sep%%` | Separator character (configurable) | | `%%excerpt%%` | Post excerpt (auto-generated if not set) | | `%%excerpt_only%%` | Excerpt only — no auto-generation fallback | | `%%category%%` | Post primary category | | `%%tag%%` | Post tags | | `%%term_title%%` | Term/taxonomy title | | `%%term_description%%` | Term description | ### Date & Time Macros | Macro | Output | |-------|--------| | `%%date%%` | Post published date | | `%%modified%%` | Post last modified date | | `%%currenttime%%` | Current time | | `%%currentdate%%` | Current date | | `%%currentday%%` | Current day | | `%%currentmonth%%` | Current month | | `%%currentyear%%` | Current year | ### Pagination Macros | Macro | Output | |-------|--------| | `%%page%%` | Page number | | `%%pagenumber%%` | Current page number | | `%%pagetotal%%` | Total pages | | `%%spell_pagenumber%%` | Page number in words ("Page Two of Five") | | `%%spell_pagetotal%%` | Total pages in words | ### Author & Post Macros | Macro | Output | |-------|--------| | `%%name%%` | Author display name | | `%%userid%%` | Author user ID | | `%%id%%` | Post ID | | `%%pt_single%%` | Post type singular name | | `%%pt_plural%%` | Post type plural name | ### Special Macros | Macro | Output | |-------|--------| | `%%searchphrase%%` | Search query (for search results page) | | Custom field macros | Supported with uppercase (v3.11.0+) | > Additional "dynamic macros" exist for edge cases that do not appear in the Browse Macros list. These are documented in the WPMU DEV support forums. ## Global vs Per-Post Settings | Level | Scope | How It Works | |-------|-------|-------------| | **Global template** | Per post type, per taxonomy, archives, special pages | Set once, applies everywhere via macros | | **Per-post override** | Individual post/page | Entered in the SmartCrawl meta box in the editor — overrides the global template | ### When to Use Each - **Global template:** Set it and forget it. Works well for blogs, archives, and consistent content types. - **Per-post override:** Use for every important page. Homepage, service pages, key landing pages, and high-value blog posts should all have hand-crafted titles and descriptions. ## Recommended Title Templates ### Homepage ``` %%sitename%% %%sep%% [Your primary value proposition] ``` Example output: `Alaska Safe Riders | Motorcycle Safety Courses in Anchorage, AK` ### Posts (Blog) ``` %%title%% %%sep%% %%sitename%% ``` Example output: `What to Wear to a Motorcycle Safety Course | Alaska Safe Riders` ### Pages ``` %%title%% %%sep%% %%sitename%% ``` Override per-page for service pages with keyword-optimized titles. ### Categories ``` %%term_title%% %%sep%% %%sitename%% ``` ### Author Archives ``` Posts by %%name%% %%sep%% %%sitename%% ``` (Consider noindexing author archives on single-author sites) ### Search Results ``` Search Results for "%%searchphrase%%" %%sep%% %%sitename%% ``` (Always noindex search results pages) ### 404 Page ``` Page Not Found %%sep%% %%sitename%% ``` ## Title Tag Best Practices - **Length:** 50-60 characters (Google truncates at ~580px pixel width) - **Primary keyword placement:** As close to the beginning as possible - **Every page must have a unique title** — duplicates confuse Google - **Include brand name** at the end (builds brand recognition in SERPs) - **Do not keyword-stuff** — one primary keyword is enough - **Use power words for CTR:** "Best", "Guide", "Free", numbers, parentheses ### Good vs Bad Examples | Bad | Good | |-----|------| | `Home - My Website` | `Motorcycle Safety Courses Anchorage, AK \| Alaska Safe Riders` | | `Services` | `Event Management & Roster Tracking \| ASR Events Manager` | | `Blog Post Title Here \| Category \| Website Name` | `What to Expect at a Basic Rider Course \| Alaska Safe Riders` | ## Meta Description Best Practices - **Length:** 150-160 characters (Google truncates unpredictably above this) - **Include primary keyword** naturally (Google bolds matching terms) - **Include a call to action:** "Register today", "Learn more", "Contact us" - **Include differentiators:** Pricing, location, certifications, experience - **Hand-craft descriptions** for important pages — auto-generated ones rarely perform well - **Google rewrites ~60% of meta descriptions** but good ones are kept and improve CTR ### Quality Indicators in SmartCrawl SmartCrawl's SEO status column on post/page lists uses color-coded indicators: | Color | Meaning | |-------|---------| | Green | Description is 120-160 characters, hand-crafted | | Yellow | Description exists but is outside optimal range or auto-generated | | Red | No description set | ## Separator Character Set in Titles & Meta > General. Common choices: | Separator | Look | |-----------|------| | `\|` (pipe) | `Page Title \| Site Name` | | `—` (em dash) | `Page Title — Site Name` | | `-` (hyphen) | `Page Title - Site Name` | | `»` | `Page Title » Site Name` | **Recommendation:** Use `|` or `—` for a clean, modern appearance. ## Noindex Recommendations Set these in the Titles & Meta module per post type/taxonomy: | Content Type | Recommendation | Reason | |--------------|---------------|--------| | Tag archives | Noindex | Usually thin content, duplicate of category archives | | Author archives | Noindex (single-author sites) | Duplicate of main blog page | | Date archives | Noindex | Thin content, duplicate | | Search results | Noindex | Dynamic, no SEO value | | Paginated archives | Noindex | Thin duplicate content | | Media attachment pages | Noindex | Single image on a page, no value | | Thank you pages | Noindex | No search value | ## Post Type Configuration Check **Settings > Advanced > Post Types** to ensure all relevant content types are enabled: - Posts and Pages (default) - WooCommerce Products (if applicable) - Portfolio items - Any custom post types **If a post type is not enabled, its pages will not appear in sitemaps and will not get SmartCrawl meta box in the editor.**