# Search Appearance Toolkit (SEO 44)

A lightweight, feature-packed SEO plugin for essential meta tags, advanced structured data, XML sitemaps, article jump links, integrations, and easy migration.

![SEO 44 Plugin Icon](https://ps.w.org/search-appearance-toolkit-seo-44/assets/icon-256x256.png)

* **Contributors:** sethsm
* **Tags:** seo, on-page seo, schema, structured data, xml sitemaps
* **Requires at least:** 6.3
* **Tested up to:** 7.1
* **Stable tag:** 4.5.3
* **Requires PHP:** 7.4
* **License:** GPLv2 or later
* **License URI:** [GLP 2.0](https://www.gnu.org/licenses/gpl-2.0.html)
* **Donate link:** [donate via paypal](https://www.paypal.com/donate/?hosted_button_id=M3B2Q94PGVVWL)
* **Plugin URI:**  [seo44plugin.com](https://www.sethcreates.com/plugins-for-wordpress/seo-44/)
* **Author URI:**  [sethcreates.com](https://www.sethcreates.com/plugins-for-wordpress/)

---

## Description

Search Appearance Toolkit (SEO 44) is a lightweight and complete SEO plugin for WordPress that improves your site's search engine visibility with a suite of powerful features and an easy migration path from other popular SEO plugins. 

Whether you're setting up a new site or looking for a lightweight alternative, SEO 44 gives you control over your on-page SEO, social media appearance, Schema.org structured data, XML sitemaps, and article jump links. 

The interface is clean and user-friendly. Under the hood, the plugin packs powerful features to scan your content and automatically generate valuable resources for SEO, freeing up more time for you to create great content. Within the block editor, the SEO 44 Jump Links Block scans for headings and generates customizable jump links that enhance user navigation and search results.

---

## Why use SEO 44?

Search Appearance Toolkit (SEO 44) is a fast, no-nonsense SEO plugin for users who want a complete set of powerful, essential SEO features and automated optimization without the performance impact, upsells, and dashboard clutter commonly found in some plugins. SEO 44 features intelligent scanners to generate schema and easy migration tools, making it an excellent choice for users looking to switch from a bloated plugin to a lightweight solution.

---

![Search Appearance Toolkit Plugin Banner](https://ps.w.org/search-appearance-toolkit-seo-44/assets/banner-1544x500.png)

## Installation

### From the WordPress Plugin Directory File
1.  Log in to your WordPress Admin Dashboard.
2.  Navigate to **Plugins > Add Plugin** in the left-hand menu.
3.  Search for the plugin: **Search Appearance Toolkit (SEO 44)**.
4.  Install the plugin: Once you locate the [correct plugin](https://wordpress.org/plugins/search-appearance-toolkit-seo-44/), click the **"Install Now"** button next to it.
5.  Activate the plugin: After the installation is complete, click the **"Activate Plugin"** button that appears.

### From a Zip File
1.  Download a copy of the plugin, available in the WordPress Plugin Directory [Search Appearance Toolkit (SEO 44)](https://wordpress.org/plugins/search-appearance-toolkit-seo-44/) webpage. 
2.  Upload the **search-appearance-toolkit-seo-44** folder to the `/wp-content/plugins/` directory 
3.  Activate the plugin through the **Plugins** menu in WordPress.
4.  Navigate to **Settings -> SEO 44** to configure the plugin.

---

## Key Features
 
### Use-Friendly Interface
* **Tabbed Settings Page:**  The interface is clean and uncluttered. All plugin settings are organized into six clear, easy-to-navigate tabs: Main Settings, Social Media, Schema, XML Sitemaps, Integrations, and Migration.
* **Helpful Tooltips:**  You will find guidance on different options throughout the settings page. 
* **Easy to Use Editor Interface:** Manage SEO tags with a clean and straightforward metabox in the post editor. 
 * **Search Results Snippet Preview:** See a live preview of how your content may look in Google search results. 
* **Character Counters:** Keep your titles and descriptions to the recommended length thanks to character counters that warn you if you exceed safe lengths.

### SEO Head Tags
* **On-Page SEO Control:** Set custom SEO Titles and Meta Descriptions for posts, pages, custom post types, categories, tags, and your homepage. 
* **Intelligent Fallback:** If you don't fill in one of the SEO tags for post, page, and taxonomy, the plugin won't output empty SEO tags; instead, it produces useful fallbacks to ensure your site is optimized, even when you don't fill out SEO fields. 
* **Optional Support for Meta Keywords:**  Include keywords if you like them, leave them out if you don't think they are valuable. The choice is yours
* **Customizable Author Tags:**  Give credit to your writers with a few formats for displaying their names. 

### Social Media Tags
* **Open Graph and Twitter Cards:**  Enable tags for Facebook (Open Graph) and X / Twitter Cards
* **Image Handling:**  Set a Default Social Image for content that doesn't have a featured image, and add your Twitter handle and Facebook App ID for better integration.

### Schema Types Used
* **WebSite:** Schema for your homepage and a core component for a site's foundational entity. It uses SearchAction to inform search engines of your site's internal search function.
* **Organization:** Comprehensive schema for the Google Knowledge Graph, including deep details like Founder, Founding Date, Professional Credentials, and Service Area.
* **Article:** Rich schema for posts, with details such as publisher, images, and word count. Features an enhanced author property that links to the author's profile URL to strengthen entity connection.
* **WebPage:** Schema for pages and custom post types, including images. 
* **BreadcrumbList:** Schema for all posts, pages, and taxonomy archives to enhance your appearance in search results.
* **Other Formats:** ImageObject, VideoObject, FAQPage, and HowTo schemas may also be used where appropriate. 

### Advanced Schema Controls & Tools
* **Intelligent Schema Scanner:** Scans your site for existing structured data from your theme or other plugins, helping you to prevent conflicts and duplicates before you enable schema.
* **Knowledge Graph Control:** A dedicated interface to manage your brand's digital identity. Define your Founder, Founding Date, Contact Info, and professional Credentials to improve E-E-A-T signals.
* **Include Images and Videos:** A built-in tool automatically finds all images and embedded YouTube videos in your content and adds them to the schema, boosting their appearance in search results.
* **FAQ and HowTo Detection:** Enable smart scanners to detect patterns in your content for FAQ and How-To sections on your website and incorporate this useful format into the schema.
* **Jump Links HowTo Scanner:** The plugin can use a Jump Links Block as a "Map" to generate detailed HowTo schema steps, while simultaneously scanning your content for Prep Time, Yield, Supplies, and Tools.
* **Table of Contents Schema:** Automatically generates `hasPart` structured data that mirrors your Jump Links Block, helping search engines understand your article's deep structure.
* **Modern Output:** All structured data is generated in the modern JSON-LD format preferred by search engines, following the guidelines set by [Schema.org](https://schema.org/).
* **Granular Control:**  Tailor the Schema settings to fit your site's needs through Enable/disable settings, including on Custom Post Types and Taxonomies.

### Comprehensive XML Sitemaps
* **Full Content Coverage:** Automatically detects all public Custom Post Types and Taxonomies and provides simple checkboxes to let you choose exactly what content to include in your sitemap. 
* **Image Sitemaps:** Includes options to add both Featured Images and images found within your post content to your sitemaps, providing more context to search engines. 
* **Custom Types:** Automatically detects and includes all public Custom Post Types and Custom Taxonomies. 
* **Performance Conscious:** The sitemap is cached for high performance and includes a "Purge Cache" button for manual regeneration. It also automatically pings search engines when you publish new content. 

### Seamless Migration Tools
* **Make the Switch:** Easily migrate from other SEO plugins without losing your work. Simply swap in the meta keys used by your old plugin to have SEO 44 pick up using your existing data. 
* **One-Click Presets:** Includes presets for popular plugins like All in One SEO, Yoast SEO, Rank Math, and more, which automatically fill in the correct meta keys for you. 
* **Database Scanner:** Not sure what meta keys your old plugin used? The built-in scanner can analyze your database, find potential SEO meta keys, and suggest the correct ones to use for a seamless transition. 

### Advanced Jump Links Block
* **Instant Jump Links List Creation:** Automatically generates a customizable "Table of Contents" block from your page's headings to improve user navigation and earn rich "Jump to" links in Google search results.
* **Full Customization:** Features "Viewing" and "Editing" modes right in the editor. In Editing Mode, you can change link text, reorder links with up/down arrows, and exclude specific headings from the list.
* **Complete Styling Control:** Use the sidebar controls to change the layout (vertical or horizontal), list style (bullets, numbers, or none), font size, and colors. For the horizontal layout, you can style the link background, border, and border-radius, choosing between a **Button** style or a minimalist **Plain Text** style with separators.
* **Front-End Interactivity:** Includes built-in smooth scrolling and an optional "Show More" button to collapse long link lists elegantly.
* **Active Link Indicator (ScrollSpy)**: As your readers scroll through the content, the table of contents automatically highlights the link for the section they are currently reading, giving them instant context on their progress.
* **Sticky Navigation:** Optionally, keep the table of contents pinned to the viewport as users scroll, ensuring navigation is always accessible for long articles. Use "smart sticky" controls like Scroll-Up-To-Reveal, if you want the jump links to be visible when needed, but tuck out of view otherwise.
* **So Much More:** All the other features described in the standalone **[Jump Links Block (SEO 44)](https://wordpress.org/plugins/jump-links-block-seo-44/)** plugin.
* **Click Tracking:** Want to see which jump links are most popular with your users? Use the plugin's integration settings to enable event tracking for jump links through Google Tag Manager.

---

## Integrations & Advanced Analytics
The Search Appearance Toolkit serves as a hub for connecting your site to essential third-party services, helping you to create valuable analytics data and site insights.

### Google Tag Manager (GTM) Integration
Easily integrate with Google Tag Manager by pasting your `GTM-XXXXXXX` ID into the settings field. The plugin will correctly and safely inject the GTM scripts into your site's `<head>` and `<body>` on every page. No coding required.

### Sophisticated GTM Event Tracking
With GTM enabled, you can check four boxes to start gathering important insights about site visitors: 

* **Rich SEO dataLayer:** Push foundational page data (like post category, author, tags, and page type) on every page load, allowing advanced users to create granular analytics triggers in GTM (e.g., "Fire this conversion pixel *only* on the 'Products' category").
* **Scroll Depth Tracking:** Find out how much of your content is being viewed by visitors. This feature pushes `scroll_depth` events as users scroll 25%, 50%, 75%, and 100% down a page.
* **Outbound & Affiliate Link Click Tracking:** Measure when users click on links to leave your site, pushing an `external_link_click` event, conditionally identifying affiliate links (with `rel="sponsored"`) and pushing a separate `affiliate_link_click` event.
* **Jump Link Click Tracking:** Tracks engagement with your Jump Links Block by pushing a `jump_link_click` event, letting you see which sections your users are most interested in.

SEO 44's integration with Google Tag Manager pushes valuable events to the `dataLayer` for use in Google Analytics. The plugin provides an import file and detailed instructions for setting up Google Tag Manager and Google Analytics to receive event tracking data. 

### Site Verification Tags
Verify your site with search engines quickly and easily. Paste your verification codes for **Google Search Console** and **Bing Webmaster Tools** into the corresponding fields in the Integrations tab. The plugin handles the rest, adding site verification meta tags to your website's head. No coding required.

### YouTube Data API 
To ensure that your site's video schema is as accurate as possible, you may add your YouTube Data API Key.  The plugin uses this key to fetch the upload date for any YouTube video embedded in your content, replacing less reliable page scraping options and fallbacks to the post publish date.

---

## Frequently Asked Questions

### What SEO benefits can this plugin provide?
Search Appearance Toolkit (SEO 44) gives you control over the technical, on-page SEO factors that help search engines understand and rank your content. Key benefits include:
* **Optimized Snippets:** Control how your titles and descriptions appear in search results.
* **Rich Results:** The advanced Schema.org data improves indexing and helps you earn rich results in Google.
* **Crawlability:** A clean and comprehensive XML sitemap ensures search engines can find and index all of your important content and images.
* **User Engagement:** The Jump Links Block improves user experience, which is a positive ranking signal, and can help you earn "Jump to" links in search results.

### What SEO ranking factors can't this plugin control?
While this plugin handles the crucial on-page technical SEO, it's important to remember that it cannot control other major ranking factors. These include factors such as the quality and originality of your content, your website's speed, mobile-friendliness, the number of quality backlinks pointing to your site, and your overall domain authority. 

Search Appearance Toolkit (SEO 44) contains effective features for optimizing your content, providing the foundation for a comprehensive SEO strategy. SEO 44 tools, like the Jump Links Block and the scanner for FAQs and How-Tos, reward the creation of thoughtful and organized content. 

### How do I migrate from another SEO plugin?
SEO 44 makes migration as simple as possible. Your previous SEO plugin saved the SEO data you created in your WordPress database. SEO 44 will find and use that data. 

Before migrating, please back up your WordPress database, including the postmeta table. Deactivate your previous SEO plugin while using SEO 44.

Go to the **Migration** tab of the SEO 44 settings page. There you will see three keys where SEO 44 will store and update your SEO titles, descriptions, and keywords. By default, these keys will be seo44_title, seo44_description, and seo44_keywords, but they can be updated to match the locations where your website already manages SEO information.

**One Click Migration**: The Migration tab includes a list of buttons with the names of popular SEO plugins. With one click, you can replace the seo44 keys with the standard meta keys for that other plugin.

Your old data won't be copied or duplicated; you will simply pick up right where you left off with your previous SEO plugin.

**Two-Click Migration**: If you'd like to verify which meta keys appear in your database, click the button to **Scan for SEO Meta Keys**

The scanner will display a list of potential matching meta keys and provide suggestions for matching title, description, and keyword keys. Click **Use Selected Keys and Save** to accept the suggestions, telling SEO 44 to use your existing meta keys.

You should now see your previous SEO titles and descriptions when you look at the SEO 44 metabox in your post editor.

### Does this plugin work with the block editor (Gutenberg)?
Yes, the SEO 44 metabox appears and functions correctly with both the block editor and the classic editor. The advanced schema detection for FAQs and How-Tos works best with the block editor but has a fallback for the classic editor. The SEO 44 Jump Links Block is a custom block for use in the block editor.

### Which social media tags does this plugin use?
SEO 44 helps your content look great when shared on social media platforms. You can enable the automatic generation of **Open Graph** (og:) tags, which Facebook, LinkedIn, and Pinterest use, and **Twitter Card** meta tags for when your content appears on X (formerly Twitter). This ensures your posts have the correct title, description, and preview image when shared.

Use the plugin's Google Tag Manager Integration to facilitate additional connections with social media platforms. Use the Organization Schema settings to associate all of your social media profiles with your website.

### How are social media images handled?
The *featured image* of any post or page will automatically be used as the primary og:image and twitter:image tag. 

If you need a site-wide default image for pages that don't have a featured image, you can set a *Default Social Image* on the plugin's "Social Media" settings tab. This image will be used as a fallback social media image when a featured image has not been set.

### What is Schema Structured Data and why should I use it on my website?
Schema Structured Data is machine-readable code that you add to your website to help search engines like Google better understand your content. Structured data is typically generated in the modern JSON-LD format, following guidelines set by Schema.org, a universal web standard used by over 10 million websites.

Read more about [Schema Structured Data](https://seo44plugin.com/search-appearance-toolkit-seo-44/schema-structured-data/#what-is-schema-structured-data) and the SEO and GEO benefits of the schema created by this plugin.

### Will this plugin create duplicate schema if my theme already adds them?
No. Using the Schema Scanner, you can detect whether your theme or another plugin is already outputting JSON-LD or Microdata. If the scanner finds existing schema, it will notify you.

Read more about the [Schema Scanner and what to do if you find existing schema on your website](https://seo44plugin.com/search-appearance-toolkit-seo-44/schema-structured-data/#what-to-do-if-your-theme-already-adds-schema).

### How does the plugin handle author schema?
SEO 44 creates a Person schema for the author of each article. To enhance this, it will automatically use the "Website" URL from the author's WordPress user profile to add url and @id attributes to the schema. This creates a powerful, machine-readable link between your content and its author, which helps search engines like Google build a stronger understanding of your site's authority and expertise (E-E-A-T).

Read more about the [Author Schema](https://seo44plugin.com/search-appearance-toolkit-seo-44/schema-structured-data/#benefits-of-author-schema) created by SEO 44.

### What are the benefits of using FAQPage and HowTo schema?
The plugin intelligently scans your content for patterns that match question-and-answer formats or step-by-step instructions (when this option is enabled). The plugin locates this content and automatically generates FAQPage or HowTo schema that presents this content as structured data.

The benefit of this is that Google can use this structured data to display your content in special, highly visible formats in the search results. An FAQ page might appear as a rich snippet with expandable questions or feature within a People Also Ask (PAA) result, while a How-To article can be featured in a step-by-step guide in AI Overviews. Search results that stand out can improve your click-through rate (CTR).

Read more about the [FAQPage and HowTo Schema](https://seo44plugin.com/search-appearance-toolkit-seo-44/schema-structured-data/#benefits-of-faqpage-and-howto-schema) created by SEO 44.

### Does this plugin create Organization schema that is better than my theme's built-in Organization schema?
SEO 44 builds Organization Schema that is valuable to the **Google Knowledge Graph.** While many WordPress themes can produce *valid* Organization schema, this is SEO "thin content" that doesn't provide search engines and LLMs with any information that isn't already obvious.

The SEO 44 plugin generates a rich Organization schema that goes far beyond what a theme can provide, displaying valuable information to Google and other search engines, as well as AI search platforms.
Organization schema is the primary data source for the **Google Knowledge Panel**, which appears in the box on the right side of desktop search results for brand searches.

A rich Organization schema explicitly tells Google:

* **"These social profiles belong to us"** (via `sameAs`).
* **"This is our official logo"**  (ensuring the right image appears in the Knowledge Panel).
* **"This is how to contact customer service"**  (via `contactPoint`).
* **"This is when the organization was formed and by whom"**  (via `foundingDate` and `founder`)
* **“This is the business address and service area”**   and (via `address` and `areaServed`)

If you leave this to the theme, Google often misses the connection between your website and the associated Twitter/Facebook/LinkedIn profiles.

Read more about [Organization Schema](https://seo44plugin.com/search-appearance-toolkit-seo-44/schema-structured-data/#benefits-of-organization-schema) and how to [deal with existing schema on your website](https://seo44plugin.com/search-appearance-toolkit-seo-44/schema-structured-data/#what-to-do-if-your-theme-already-adds-schema).


### Should I use SEO 44 for schema if my theme already adds schema?

First and foremost, you should **avoid** enabling the SEO schema features while your theme is doing so. 

When your website contains existing schema structured data, evaluate whether the structured data added by your theme is helpful for SEO, or whether the schema introduced by your theme merely duplicates labeling for semantic HTML elements that search engines and AI platforms already understand. For example, schema types like `WPHeader`, `WPFooter`, and `WPSideBar` provide no known SEO benefit (or GEO Benefit, for that matter), merely confirming what search engines and AI/LLMs already understand from the HTML structure (e.g., `<header>` and `<footer>`).

Themes include these basic structural schemas to be “schema-ready,” relying on Schema Microdata inline with HTML attributes like itemscope and itemtype, which result in slightly more cluttered HTML code that can be harder to manage. In contrast, there are advantages to using a dedicated SEO plugin like SEO 44 to inject high-value schemas via the schema JSON-LD format. Using JSON-LD keeps the structured data separate from the HTML markup, leading to cleaner HTML.

[Compare Theme-Generated and SEO 44 Plugin Generated Schema](https://seo44plugin.com/search-appearance-toolkit-seo-44/schema-structured-data/#schema-structured-data-theme-generated-vs-plugin-generated).

[Decide when to remove theme-generated schema (and learn how to do it)](https://seo44plugin.com/search-appearance-toolkit-seo-44/schema-structured-data/#what-to-do-if-your-theme-already-adds-schema).


### How do I add Google Tag Manager (GTM)?
The Search Appearance Toolkit (SEO 44) makes this easy. All you need is your Container ID. 
1.  In your Google Tag Manager account, find and copy your **Container ID** (it looks like `GTM-XXXXXXX`).
2.  In your WordPress dashboard, go to **Settings > SEO 44** and click the **"Integrations"** tab.
3.  Paste your Container ID into the **"Google Tag Manager ID"** field.
4.  Check the **"Enable Google Tag Manager"** box.
5.  Click **"Save Settings."**

That's it. The plugin will now automatically add both the required GTM `<head>` script and `<body>` `<noscript>` tag to your entire site.

**New to Google Tag Manager?** When you create a new site in Google Tag Manager, you will receive instructions to (1) paste one block of code as high in the `<head>` of the page as possible and (2) paste another block of code immediately after the opening `<body>` tag. **You do not need to follow these instructions to add code manually.** The plugin handles this assignment for you. All you need to do is copy the GTM Container ID and paste it into the field in the integrations tab.  The plugin will do the rest!

### How do I set up Google Tag Manager (GTM) tracking for events (the easy way)?

To save you time and eliminate errors, your plugin provides a "GTM Import File." This recipe contains all the tags, triggers, and variables necessary for GTM to listen for your plugin's custom events (like `jump_link_click` and `scroll_depth`) and send them to Google Analytics.

This setup is a two-part process. First, you'll configure GTM, then you'll configure Google Analytics.

**Part 1: Configure Google Tag Manager (GTM)**

1.  **In your WordPress admin,** go to **Settings > SEO 44 > Integrations**.
2.  Click the **"Download GTM Import File"** button to save the `seo44-gtm-recipe-importer.json` file. The download button is located below the field where you enter your Google Tag Manager ID.
3.  **In Google Tab Manager,** Open the GTM container for your website and go to **Admin > Import Container**.
4.  **Choose container file:** Upload the `seo44-gtm-recipe-importer.json` file.
5.  **Choose workspace:** Select your existing workspace.
6.  **Choose an import option (CRITICAL):**
    * Select the **"Merge"** option.
    * **NEVER** select "Overwrite," as this will delete all of your existing GTM tags.
7.  **Confirm Preview:** GTM will show you a preview of all the new tags, triggers, and variables. Click **Confirm.**
8.  Go to **Variables** and click on the **"GA4 - Measurement ID"** variable. 
9.  Replace the **`PASTE-YOUR-GA4-MEASUREMENT-ID-HERE`** placeholder with your own GA4 Measurement ID (e.g., `G-XXXXXXX`).
10. Finally, **Submit** and **Publish** your container.

**Part 2: Configure Google Analytics (GA4)**

With GTM now configured, you must next tell Google Analytics to "listen for" and "display" the custom data.

**Important:** You must manually register these new Custom Dimensions in GA4. If you skip this step, you will only see the count of the events, not the valuable data (like which link was clicked).

1.  Go to the **Admin** area in Google Analytics (by clicking on the gear icon in the bottom left).
2.  In the "Property" column, find **Data display > Custom definitions**.
3.  Click the blue **"Create custom dimensions"** button.
4.  You will need to create **four** new dimensions, one by one.  Use the exact "Event parameter" names listed below.

**Dimension 1:**

* **Dimension name:** `click_text`
* **Scope:** `Event`
* **Event parameter:** `click_text`
* Click **Save.**
	
**Dimension 2:**

* **Dimension name:** `click_anchor`
* **Scope:** `Event`
* **Event parameter:** `click_anchor`
* Click **Save.**
	
**Dimension 3:**

* **Dimension name:** `scroll_percentage`
* **Scope:** `Event`
* **Event parameter:** `scroll_percentage`
* Click **Save.**
	
**Dimension 4:**

* **Dimension name:** `outbound_url`
* **Scope:** `Event`
* **Event parameter:** `outbound_url`
* Click **Save.**

After completing these steps (and waiting 24-48 hours for Google Analytics to process the data), you will be able to see all your new events and their associated data (like which links were clicked and how far users scrolled) in your Events report.

### How do I add my Google Search Console verification code?

This plugin uses the "HTML tag" verification method, which is the most common and reliable way. You only need to copy the code, not the full tag.

1.  Sign in to [Google Search Console](https://search.google.com/search-console).
2.  Add your website as a "Property" if you haven't already.
3.  In the verification settings for your property, find and select the **"HTML tag"** method.
4.  Google will show you a full meta tag, like this:
    `
    <meta name="google-site-verification" content="YOUR_UNIQUE_CODE_TO_COPY" />
    `
5.  Copy **only the code** inside the `content="..."` attribute.
6.  In your WordPress admin, go to **Settings > SEO 44 > Integrations**.
7.  Paste your code into the **"Google Search Console"** field.
8.  Click **"Save Settings"** at the bottom of the page.
9.  Go back to the Google Search Console page and click the **"Verify"** button. Google will now be able to see the tag on your site.

### How do I add my Bing Webmaster Tools verification code?

Similar to Google, Bing uses an "HTML meta tag" to verify your site. You only need to copy the specific code from the tag.

1.  Sign in to [Bing Webmaster Tools](https://www.bing.com/webmasters/about).
2.  Add your site. When prompted for a verification method, select **"HTML meta tag"**.
3.  Bing will provide a tag that looks like this:
    `
    <meta name="msvalidate.01" content="YOUR_UNIQUE_BING_CODE_TO_COPY" />
    `
4.  Copy **only the code** inside the `content="..."` attribute.
5.  In your WordPress admin, go to **Settings > SEO 44 > Integrations**.
6.  Paste your code into the **"Bing Webmaster Tools"** field.
7.  Click **"Save Settings"** at the bottom of the page.
8.  Go back to the Bing Webmaster Tools page and click the **"Verify"** button.

### Why can't I see the images in my sitemap?
You can! The XML sitemap is a code file meant for search engines, so browsers don't display images directly. To verify that your images are included, go to your sitemap (e.g., yourwebsite.com/sitemap.xml), right-click, and select "View Page Source." You will see the image URLs listed within <image:image> tags for each relevant post or page.

### My sitemap shows a "404 Not Found" error. How do I fix it?
This can occur when WordPress has not yet recognized the new sitemap URL. To fix it, go to **Settings -> Permalinks** in your WordPress admin and click the "Save Changes" button. This will refresh your site's rewrite rules and make the sitemap visible. The sitemap generator also automatically disables the default WordPress sitemap. 

### How is the "Search Appearance Toolkit (SEO 44)" plugin different from the standalone "Jump Links Block (SEO 44)" plugin?
The main **[Search Appearance Toolkit (SEO 44)](https://wordpress.org/plugins/search-appearance-toolkit-seo-44/)** plugin is a complete suite of tools that includes meta tag optimization, schema generation, XML sitemaps, *and* the Jump Links Block. The standalone **[Jump Links Block (SEO 44)](https://wordpress.org/plugins/jump-links-block-seo-44/)** plugin offers *only* the Jump Links Block functionality for users who don't need a full SEO suite. You only need one. If you are using the Search Appearance Toolkit (SEO 44) plugin, you do not need the standalone block plugin.

### How can I save and reuse my custom styles for the Jump Links Block?

You can save a fully customized Jump Links block as a Block Pattern to easily reuse it across your site. This is a handy WordPress feature. With Block Patterns, you don't have to repeat the process of manually setting the same style settings for Jump Links blocks on multiple pages. That work is done for you.

**Here’s how:**

1.  **Style Your Block:** Add the SEO 44 Jump Links block to a page and style it exactly how you want using the settings in the sidebar (colors, layout, border radius, etc.).

2.  **Open the Options Menu:** With the block selected, click the three-dot (⋮) options menu on the block's toolbar.

3.  **Create the Pattern:** From the dropdown menu, select Create pattern. A pop-up window will appear.

4.  **Name and Configure:** Give your pattern a name (e.g., "Super Stylish Jump Links"). You will see a toggle for **Synced**. This is an important choice:

* **Avoid Synced (ON):** Don't use this setting, which will prevent you from accessing the Jump Link Block's customization features, like being able to re-order or rename the jump links.

* **Use Synced (OFF):** Turn synced off before saving your custom pattern. This will create a regular pattern that, when added to other posts, renders a Jump Links Block with all your favorite styles preloaded. This independent copy of your original styled block, created through your new pattern, has full customization controls. Synced Off is the way to go!

5.  **Click Create:** Your custom pattern is now saved!

6.  **Reuse Your Pattern:** To use it on another page, click the main block inserter (+), go to the Patterns tab, and select the "My patterns" category. You will see your saved design, ready to be inserted with one click.

---

## For Developers

For advanced theme development, SEO 44 provides four template tags and a filter hook.

### Using Template Tags
The Search Appearance Toolkit (SEO 44) empowers Theme Developers with four template tags to place SEO and schema output in custom locations within theme files.

* **`seo44_get_the_tags()`:** This function **returns** the complete block of HTML meta tags as a PHP string.
* **`seo44_the_tags()`:**  This function **prints** (echoes) the complete block of HTML meta tags, wrapped in wp_kses to ensure security.
* **`seo44_get_the_schema()`:** This function **returns** the JSON-LD schema script tag as a PHP string.
* **`seo44_the_schema()`:** This function **prints** (echoes) the JSON-LD schema script tag.

### Adding Custom Schema
The schema output created by Search Appearance Toolkit (SEO 44) is extendable using the 'seo44_add_schema_parts' Filter, which allows for the addition of custom schema types (like LocalBusiness or Product).

The `seo44_add_schema_parts` filter allows for the injection of additional schema arrays into the final @graph output via a WordPress filter hook.

**Example Usage:**
The following example shows how you could create a small, separate plugin to add LocalBusiness schema to a specific "Contact Us" page.

```php
<?php
/**
 * Hooks into the 'seo44_add_schema_parts' filter to add custom schema.
 *
 * @param array $schema_parts The existing array of schema parts from SEO 44.
 * @param int   $post_id The ID of the current post being viewed.
 * @return array The modified array of schema parts.
 */
function my_custom_add_local_business_schema( $schema_parts, $post_id ) {
    // The ID of the "Contact Us" page.
    $contact_page_id = 123;

    // Only add this schema on our specific contact page.
    if ( $post_id == $contact_page_id ) {
        $local_business_schema = [
            '@context'    => 'https://schema.org',
            '@type'       => 'LocalBusiness',
            'name'        => 'SEO 44 Global Headquarters',
            'address'     => '123 Main St, Anytown, USA',
            'telephone'   => '555-555-1234'
        ];
        // Add our new schema to the array.
        $schema_parts[] = $local_business_schema;
    }
    // Always return the array.
    return $schema_parts;
}
add_filter( 'seo44_add_schema_parts', 'my_custom_add_local_business_schema', 10, 2 );
?>
```

---

## Credits

**WordPress.org:** The default placeholder favicon used in the "Search Results Snippet Preview" is based on the official WordPress logo. The image file is included locally within the plugin to comply with repository guidelines. 

---

##  External Services

Search Appearance Toolkit (SEO 44) utilizes a few external, third-party services in order to provide its full range of features. All of these features are optional.

### Google Tag Manager (GTM) Integration

* **Service Description:** This plugin can automatically inject the Google Tag Manager (GTM) container script into your website's `<head>` and `<body>`. This allows you to manage all your third-party tracking scripts (like Google Analytics) from a single GTM dashboard.
* **Data Sent and Conditions:** This feature is **off by default**. If you enable the "Enable Google Tag Manager" option in the Integrations tab and provide your GTM Container ID (e.g., `GTM-XXXXXXX`), the plugin will add Google's official GTM script to every page of your site. This script will then download and run tracking code from Google's servers.
* **Service Provider Links:**
    * **Google:** [Terms of Service](https://policies.google.com/terms), [Privacy Policy](https://policies.google.com/privacy)

### Site Verification Tags (Google & Bing)

* **Service Description:** To prove you own your site to search engines, this plugin allows you to add their required verification meta tags to your site's `<head>`.
* **Data Sent and Conditions:** This feature is **off by default**. It is only active if you paste a verification code into the "Google Search Console" or "Bing Webmaster Tools" fields in the Integrations tab. The plugin does not actively "send" this data; it simply adds a `<meta>` tag to your site's HTML, which Google's and Bing's crawlers will look for to verify your ownership.
* **Service Provider Links:**
    * **Google:** [Terms of Service](https://policies.google.com/terms), [Privacy Policy](https://policies.google.com/privacy)
    * **Bing (Microsoft):** [Microsoft Services Agreement](https://www.microsoft.com/en-us/servicesagreement/), [Microsoft Privacy Statement](https://privacy.microsoft.com/en-us/privacystatement)

### Sitemap Ping Services (Google & Bing)

* **Service Description:** To help your content get indexed faster, this plugin can automatically notify (or "ping") major search engines when your XML sitemap is updated. This feature uses the public ping services provided by Google and Bing.
* **Data Sent and Conditions:** This feature is **on by default** and can be disabled from the "XML Sitemaps" settings tab. If enabled, the plugin will send the URL of your website's sitemap (e.g., `https://yourwebsite.com/sitemap.xml`) to Google and Bing. This happens automatically only when you publish a new post. No other data is sent.
* **Service Provider Links:**
    * **Google:** [Terms of Service](https://policies.google.com/terms), [Privacy Policy](https://policies.google.com/privacy)
    * **Bing (Microsoft):** [Microsoft Services Agreement](https://www.microsoft.com/en-us/servicesagreement/), [Microsoft Privacy Statement](https://privacy.microsoft.com/en-us/privacystatement)
 
### YouTube Data API Integration & Video Metadata

* **Service Description:** This plugin connects to YouTube to fetch the "Upload Date" for videos embedded in your content. This ensures your VideoObject schema is accurate.
* **Data Sent and Conditions:**
    * **Method 1 (API):** If you provide a YouTube API Key in settings, the plugin sends the Video ID to the Google Data API.
    * **Method 2 (Public Fallback):** If no API Key is present, the plugin acts as a standard browser and fetches the public video page (via `wp_remote_get`) to locate the upload date in the page meta tags.
    * **Conditions:** This occurs automatically when a post with a YouTube embed is updated, provided that Schema generation is enabled.
* **Service Provider Links:**
    * **YouTube:** [Terms of Service](https://www.youtube.com/t/terms), [Google Privacy Policy](https://policies.google.com/privacy)

---

## Screenshots

![The clean and simple SEO metabox in the post editor, with the live snippet preview](https://ps.w.org/search-appearance-toolkit-seo-44/assets/screenshot-1.png)

_The clean and simple SEO metabox in the post editor, with the live snippet preview._

---

![The Main Settings tab, for controlling meta tags and homepage SEO](https://ps.w.org/search-appearance-toolkit-seo-44/assets/screenshot-2.png)

_The Main Settings tab, for controlling meta tags and homepage SEO._

---

![The Social Media settings tab](https://ps.w.org/search-appearance-toolkit-seo-44/assets/screenshot-3.png)

_The Social Media settings tab._

---

![The Schema Structured Data tab](https://ps.w.org/search-appearance-toolkit-seo-44/assets/screenshot-4.png)

_The Schema Structured Data tab._

---

![The Organization & Knowledge Graph section of the Schema Structured Data tab](https://ps.w.org/search-appearance-toolkit-seo-44/assets/screenshot-16.png)

_The Organization & Knowledge Graph section of the Schema Structured Data tab._

---

![The Additional Profiles for Organization Schema section of the Social Media settings tab](https://ps.w.org/search-appearance-toolkit-seo-44/assets/screenshot-17.png)

_The Additional Profiles for Organization Schema section of the Social Media settings tab._

---

![The intelligent Schema Scanner, showing a clean result and a preview, on the Schema Structured Data tab](https://ps.w.org/search-appearance-toolkit-seo-44/assets/screenshot-5.png)

_The intelligent Schema Scanner, showing a clean result and a preview, on the Schema Structured Data tab._

---

![The comprehensive XML Sitemaps tab](https://ps.w.org/search-appearance-toolkit-seo-44/assets/screenshot-6.png)

_The comprehensive XML Sitemaps tab._

---

![The Migration settings tab](https://ps.w.org/search-appearance-toolkit-seo-44/assets/screenshot-7.png)

_The Migration settings tab._

---

![The SEO Meta Keys Scanner, showing the scan on a website with no previous SEO keys,  on the Migration Settings tab](https://ps.w.org/search-appearance-toolkit-seo-44/assets/screenshot-8.png)

_The SEO Meta Keys Scanner, showing the scan on a website with no previous SEO keys,  on the Migration Settings tab._

![The Integrations tab with Google Tag Manager and Site Tool settings](https://ps.w.org/search-appearance-toolkit-seo-44/assets/screenshot-18.png)
_The Integrations tab with Google Tag Manager and Site Tool settings._

---

![A category edit screen showing he new SEO fields](https://ps.w.org/search-appearance-toolkit-seo-44/assets/screenshot-9.png)

_A category edit screen showing the new SEO fields._

---

![Published Vertical Jump Links, expanded and collapsed](https://ps.w.org/search-appearance-toolkit-seo-44/assets/screenshot-10.png)

_Published Vertical Jump Links, expanded and collapsed._

---

![Published Horizontal Jump Links, expanded and collapsed](https://ps.w.org/search-appearance-toolkit-seo-44/assets/screenshot-11.png)

_Published Horizontal Jump Links, expanded and collapsed._

---

![The Jump Links Block in Viewing Mode](https://ps.w.org/search-appearance-toolkit-seo-44/assets/screenshot-12.png)

_The Jump Links Block in Viewing Mode._

---

![The Jump Links Block in Editing Mode](https://ps.w.org/search-appearance-toolkit-seo-44/assets/screenshot-13.png)

_The Jump Links Block in Editing Mode._

---

![The Sidebar controls for the Jump Links Block](https://ps.w.org/search-appearance-toolkit-seo-44/assets/screenshot-14.png)

_The Sidebar controls for the Jump Links Block._ 

![Published Horizontal Jump Links with sticky navigation showing the Active Link Indicator](https://ps.w.org/search-appearance-toolkit-seo-44/assets/screenshot-15.png)

_Published Horizontal Jump Links with sticky navigation showing the Active Link Indicator._ 

---

## You Might Also Like

If you like this plugin, you might also enjoy these WordPress tools:

* **[Jump Links Block (SEO 44)](https://wordpress.org/plugins/jump-links-block-seo-44/)** - A custom block that automatically creates a clickable, customizable Jump Links table of contents from the headings in your post (a standalone version of the block offered in the Search Appearance Toolkit).
* **[Microdata to JSON-LD Converter](https://wordpress.org/plugins/microdata-to-json-ld-converter/)** - A handy tool to convert your existing Schema.org Microdata into the preferred JSON-LD format, clean up your HTML, and maintain structured data.
* **[Under The Weather](https://wordpress.org/plugins/under-the-weather/)** - A lightweight and customizable weather widget, powered by the OpenWeather API, that caches and presents weather data with multiple style options.

## Changelog

### 4.5.3 
* **PERFORMANCE** (Jump Links Block): Block styles are now conditionally loaded only when the Jump Links block is present.
* **IMPROVEMENT** (Jump Links Block): Implemented late-enqueue logic for block assets. Global inline CSS has been replaced with a conditionally loaded external stylesheet, improving browser caching and reducing page weight on pages not using the Jump Links Block.
* **DEV:** Tested Up To WordPress 7.1.

### 4.5.2
* **IMPROVEMENT** (Jump Links Block): Implemented recursive block scanning. The plugin now identifies headings nested inside layout blocks (Groups, Columns, Kadence Rows) to generate your jump links list.

### 4.5.1
* **DEV:** Tested Up To WordPress 7.0.
* **FIX:** Replaced dynamic string concatenation and added missing translators to meet internationalization (i18n) compliance standards 


### 4.5
* **ENHANCEMENT:** Now outputs canonical URLs for Category, Tag, and Taxonomy archive pages, filling a gap in WordPress's native rel_canonical() function.
* **ENHANCEMENT:** Improved sitemap clear cache support for servers with Persistent Object Caching (Memcached/Redis).


### 4.4.2
* **FIX** (readme): Updated WebSite schema description

### 4.4.1
* **FIX** (Jump Links Block): The sticky navigation now remains visible when the list is expanded, preventing it from disappearing unexpectedly during use.

### 4.4.0
* **NEW** (Jump Links Block): Added a "Plain Text" style option for horizontal layouts, offering a minimalist alternative to the default button style.
* **NEW** (Jump Links Block): Introduced optional "Smart Sticky" (Scroll-Up-To-Reveal) behavior. The sticky table of contents can now hide automatically when scrolling down to save screen space and reappear when scrolling up.
* **NEW** (Jump Links Block): Added visual separators (Middle Dot, Pipe, and Slash) for text-based link lists.
* **ENHANCEMENT** (Jump Links Block): Introduced CSS transitions for sticky elements for a smooth visual experience for Scroll-Up-To-Reveal jump links.
* **ENHANCEMENT** (Jump Links Block): Optimized editor controls to conditionally display relevant settings, keeping the sidebar clean.
* **FIX** (Jump Links Block): Added dynamic border calculation to resolve an issue where thick borders could prevent the navigation bar from sticking or hiding correctly.

### 4.3.0
* **FEATURE:** **Table of Contents Schema:** Automatically generates `hasPart` schema synchronized with the Jump Links Block to support "Jump-to" links in search results.
* **FEATURE:** **Advanced HowTo Schema:** A new "Block-Aware" scanner uses the Jump Links Block to strictly define steps while intelligently mining the introduction for tools, time, yield, and video data.
* **TWEAK:** Added a "Generate HowTo Schema" checkbox to the SEO 44 metabox, giving users explicit control over when the advanced scanner runs.
* **FEATURE:** **YouTube Integration:** Added support for the YouTube Data API v3 to fetch accurate video upload dates for VideoObject schema.
* **TESTED:** Tested to WordPress Version 6.9

---

## Upgrade Notice

### 3.8.5
This update adds an important conflict-resolution feature. It will now automatically deactivate a standalone Jump Links Block plugin if it is detected.
