Cart empty

 x 

HeadTag Manager Documentation

Version 1.2.5

Add custom tags to your website's HTML head, on the pages you choose.

HeadTag Manager is designed for Joomla 5 and 6. Use it for Open Graph tags, link tags and structured data without editing your template.

See the demo below

1. Install the package

  1. Download the HeadTag Manager installation ZIP from your purchase.
  2. In Joomla Administrator, open System → Install → Extensions.
  3. Upload the complete package, for example pkg_headtagmanager_v1.2.5.zip. You do not need to extract it.
  4. Open System → Manage → Plugins and check that System - HeadTag Manager is enabled.

The package installs the module, the head-output plugin and the update-key plugin together. The plugins are enabled automatically on a fresh installation.

2. Create your first module

  1. Open Content → Site Modules → New and select HeadTag Manager.
  2. Enter a title that helps you identify the tags, such as Home page sharing tags. Set Show Title to Hide.
  3. Set Position to headtag-manager. If it is not listed, type the name and press Enter.
  4. Paste your complete HTML tags into Custom head markup.
  5. Leave Insert into head set to Yes and set Status to Published.
  6. Choose the pages in Menu Assignment, then save the module.
No template changes are needed. The special position headtag-manager is read by the plugin. The module adds tags inside <head> and does not display a content block on the page.

3. Choose where the tags appear

Use the module's Menu Assignment tab:

  • On all pages: apply the same tags wherever the module passes access, language, publishing and inheritance checks.
  • Only on the pages selected: select the menu items that should receive the tags.
  • On all pages except those selected: exclude specific menu items.
  • No pages: keep the module without applying its tags.

Create separate HeadTag Manager instances when different pages need different tags. Joomla's access level, language and publishing dates also control when each instance applies.

Assignments follow the active Joomla menu item, not an exact URL. For category menu items, Include inherited pages defaults to No: tags stay on that category and its pagination. Set it to Yes to include articles and subcategories sharing the menu item. This restriction also applies to modules assigned to all pages. Automatic article tags are configured separately in the system plugin.

4. Example markup

Open Graph sharing tags

Copy this example into Custom head markup, then replace the title, description, page address and image address with your own values.

<meta property="og:title" content="My page title">
<meta property="og:description" content="A short description of this page.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://example.com/my-page">
<meta property="og:image" content="https://example.com/images/share.jpg">

Use full public URLs for the page and image. For a title containing an ampersand, write Fish &amp; Chips in the HTML attribute.

Structured data (JSON-LD)

This example describes an organization. Replace the example values and assign it to a suitable page.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "My Business",
  "url": "https://example.com",
  "logo": "https://example.com/images/logo.png"
}
</script>
Paste only the tags you want to insert, without <html> or <head> wrappers. Markup is inserted as entered, so only trusted administrators should edit it. PHP code and content-plugin shortcodes are not processed. Custom modules alone leave other tags untouched. Automatic article and menu tags use the duplicate policy configured in the system plugin.

5. Check the result

  1. Open an assigned page on your website.
  2. Use your browser's View Page Source option.
  3. Search for a value you entered, such as og:title, and confirm that it appears inside <head>.
  4. Check an unassigned page to confirm that the same module's tags are absent.

Clear Joomla and any page/CDN caches after changing tags or assignments if the old markup is still shown.

6. Automatic article sharing tags

Open System → Manage → Plugins → System - HeadTag Manager and enable Automatic article Open Graph. No module is needed. Remove the old Open Graph block from your article template override. Optionally enter your own Facebook App ID.

Under Article sharing options you can select categories and include descendants, enable image fallbacks (intro image, full image, default image), choose the description source and word-boundary length limit, and preserve existing tags or replace them with generated values.

Automatic article Open Graph is off by default. When enabled, it generates og:title, og:description, og:image, og:type and the absolute article URL in og:url. Empty descriptions and unavailable images are omitted. It runs on individual article pages, independently of module menu assignments.

Automatic article options and defaults
OptionDefault and behavior
Article categories Empty means all categories. Select categories to restrict automatic tags. Include subcategories is off by default.
Image fallbacks Off by default. When enabled, try the intro image, full article image, then the configured default sharing image. A valid custom-field image takes priority.
Description source Intro text by default. You can instead use the article meta description alone, or the meta description with intro-text fallback.
Description length Zero means unlimited. A positive character limit stops at a word boundary. A single word longer than the limit is kept intact.
Existing sharing tags Preserve existing values by default. Replace with generated values uses the article's generated metadata instead.
Article custom fields Off by default. Configure separate field IDs for social title, description and image; zero disables an individual override.
Site name and locale Off by default. When enabled, blank overrides use Joomla's site name and the current page language.
Publication and modification dates Off by default. Uses ISO 8601 dates; publication falls back to creation, and unset modification dates are omitted.
Twitter Card tags Off by default. Choose summary or large-image summary and optionally enter an account handle. Without an image, the card uses summary.
Facebook App ID Blank by default. Enter your own numeric ID to add fb:app_id.

For article overrides, create text, textarea and media/URL fields in Content → Fields, set their Automatic Display to Do not automatically display, enable Use article custom fields and enter their numeric IDs in the plugin. Fill in the fields on each article. Empty values fall back to article data. Joomla field publication, language and access rules apply.

Site name, locale, publication/modification dates and Twitter Card tags have separate optional switches. Existing settings are preserved; new optional features default to off.

Duplicate handling covers the rendered page head, including template and module tags, only for names generated on this article. Preserve keeps the first existing value; Replace uses the generated value. Extra duplicates of managed names are removed. Order this plugin after other tag-writing plugins and before page-cache plugins that save the response, then clear caches and check the output.

7. Automatic sharing tags for menu pages

  1. Open System - HeadTag Manager → Menu sharing options.
  2. Enable Automatic menu Open Graph; it is off by default.
  3. Choose Selected menu items and select the pages, or choose All menu pages. An empty selection means no pages.
  4. Under Individual menu images, add rows to assign pictures to menu items as described below.
  5. Optionally choose a shared fallback under Menu sharing image, then save and clear caches.

Matching non-article component pages receive the page title (menu title fallback), page meta description (menu description fallback), og:type=website and an absolute menu URL. Empty descriptions and unset images are omitted. Add a meta description in the menu or component settings when needed. Pagination shares the menu landing-page URL.

Assign one picture to multiple menu items

  1. Under Individual menu images, add a row.
  2. In that row's Menu items selector, choose one or more menu items.
  3. Choose the Sharing picture for those menu items.
  4. Add another row, select another group of menu items and choose its picture. Repeat as needed.
  5. Save, clear Joomla/page/CDN caches, and check a page from each group using View Page Source or the preview tool.

For example, select Home and About in the first row with your company picture, then select Services and Contact in a second row with another picture. You can also select just one menu item for a picture used only on that page. Existing single-menu selections remain supported after upgrading.

Image rows only choose pictures: pages must also be enabled by Menu scope and, when using Selected menu items, the main Menu items selection. For aliases, select the resolved target menu item.

If a menu item appears in several rows, its first matching row with a valid picture wins. Blank or invalid pictures are skipped. If no matching row has a valid picture, the plugin uses Menu sharing image as the shared fallback. Leave that fallback blank to generate no image for pages without a valid row picture. The chosen picture also supplies the Twitter Card image when Twitter Cards are enabled.

Keep or replace existing sharing images

Under Article sharing options → Existing sharing tags, choose how generated tags interact with existing tags. This policy also applies to automatic menu tags:

  • Preserve existing values: keep the first existing og:image from a template, module or another extension. Use the configured picture when that tag is absent.
  • Replace with generated values: use the picture selected from the image rows or shared fallback instead of an existing og:image.

Existing Open Graph and Twitter images are handled independently. If no valid picture is generated, existing image tags remain unchanged. The plugin does not scan menu-page content for images. Individual articles continue to use their separate article image and fallback settings.

Description length, existing-tag policy, site name, locale, Facebook App ID and Twitter Card settings also apply. These shared controls remain in the basic/article settings. Article-specific custom fields, image fallbacks, description source and dates do not apply to menu pages.

Individual articles still use Automatic article Open Graph and Article categories. Selecting a category menu does not enable its tags on inherited articles or subcategories. External links, headings, separators, edit forms and component actions are excluded. For menu aliases, select the resolved target menu item. Check third-party component routes using the preview tool.

8. Preview tags and diagnose duplicates

Open your Joomla site URL followed by /media/plg_system_headtagmanager/preview.html, keep any Joomla subdirectory in that URL, paste the complete rendered page source and click Inspect tags. The tool shows a text preview, tag values and warnings locally in your browser, without uploading source or fetching images.

The preview also reports why automatic menu tags were generated or skipped. To see generated candidates and their sources, enable Include tag diagnostics in the plugin, clear caches and copy fresh page source. Diagnostic data is public in the source. Disable it after checking and clear caches again. Existing raw tags can be identified as page-head tags, but their originating extension cannot be identified automatically.

9. Set up purchased updates

  1. Open System → Manage → Plugins.
  2. Find Installer - HeadTag Manager Update Key and check that it is enabled.
  3. Paste the update key received with your purchase into Update key and save.
  4. Use System → Update → Extensions to find and install available updates.

The key is used for protected update downloads. No key is needed to install, configure or run the module. If your update entitlement expires, your existing tags continue to work.

During a protected update download, the update plugin sends the key and your site's hostname to shop.topoweryou.com to validate the update entitlement and any update-domain limit. It does not make these requests during frontend page rendering. You do not need VirtueMart or VM Key Manager installed on your website.

Troubleshooting

Common issues and what to check
IssueWhat to check
No custom module tags in the page source Enable the system plugin, publish the module, set Insert into head to Yes, and use the exact position headtag-manager. Check menu assignment, access, language and publishing dates.
No automatic article tags Enable Automatic article Open Graph in the system plugin, open an individual article, and check the selected categories and Include subcategories setting. No module instance is required.
No automatic menu tags Enable Automatic menu Open Graph and check the menu scope and selected items. An empty selection means no pages. Individual articles use the separate article controls.
Wrong picture on a menu page Check the menu items selected in each image row and their order: the first matching valid picture wins. Check the shared Menu sharing image fallback and the Existing sharing tags policy; Preserve existing values can keep an image supplied elsewhere. Clear caches and inspect the page source.
Tags appear on unexpected pages Check which menu item Joomla uses for those pages and review all published HeadTag Manager instances.
Duplicate tags Check other module instances, your template and SEO extensions. For automatic article and menu tags, choose Preserve existing values or Replace with generated values. Duplicate cleanup only affects names generated for the current page. Use the preview tool to inspect other duplicates.
Old values still appear Clear Joomla, page and CDN caches, then inspect the page source again.
An update cannot be downloaded Check the installer plugin, saved key, entitlement expiry and update-domain allowance. Contact the seller if your site has moved to a new domain.

Disable or uninstall

To stop a set of tags, unpublish its module or set Insert into head to No. To stop automatic article tags, set Automatic article Open Graph to No in the system plugin. To stop automatic menu tags, set Automatic menu Open Graph to No. Disable Include tag diagnostics separately if enabled, then clear caches. To remove the extension, first save any markup you want to keep, then open System → Manage → Extensions and uninstall the HeadTag Manager package.

Source code on GitHub

Browse the source code at Darko-F/HeadTag-Manager on GitHub. The repository includes the extension source and build tools. For the ready-to-install package and purchased updates, use your purchase download.

Feature demonstration

See how your sharing tags work

One picture for a page. One picture for a whole group. Different pictures for different sections.

The examples below illustrate settings and generated markup. The coloured panels stand in for your chosen photos; they are not fetched from your website. Social platforms control the final appearance of shared links.

1. Choose pictures for groups of menu items

In Menu sharing options → Individual menu images, add one row per picture. Each row lets you select multiple menu items.

Example configuration: two image rows and a shared fallback
Image rowSelected menu itemsSharing picture
Row 1 Home, About Company picture
Row 2 Services, Contact Services picture
Shared fallback Other eligible menu pages without a valid matching picture Default brand picture

Enable Automatic menu Open Graph and include the pages in your menu scope. Choosing a picture does not enable a page by itself. If groups overlap, the first matching row with a valid picture wins.

2. See illustrative sharing cards

Company picture
Example image area

EXAMPLE.COM / ABOUT

Meet our company

Discover our team and the story behind our business.

Row 1: Home + About
Services picture
Example image area

EXAMPLE.COM / SERVICES

Explore our services

Find the right service for your next project.

Row 2: Services + Contact
Default brand picture
Example image area

EXAMPLE.COM / FAQ

Frequently asked questions

Helpful answers to common questions about our business.

Shared fallback

These are sample cards, not live previews. Pages in the same image group keep their own titles, descriptions and URLs. An existing sharing image may take priority when Preserve existing values is enabled.

3. Look at the generated markup

For the sample Services page, automatic menu tags could look like this. The image comes from Row 2; the title and description come from the page metadata, with menu settings as fallbacks.

View sample Open Graph tags
<meta property="og:title" content="Explore our services">
<meta property="og:description" content="Find the right service for your next project.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://example.com/services">
<meta property="og:image" content="https://example.com/images/services.jpg">
View sample Twitter Card tags

Enable Twitter Card tags and select Large image summary to generate these additional tags. Existing Open Graph and Twitter values follow the duplicate policy independently.

<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Explore our services">
<meta name="twitter:description" content="Find the right service for your next project.">
<meta name="twitter:image" content="https://example.com/images/services.jpg">

4. Inspect this page's custom head module

This example uses a custom head module created with HeadTag Manager. Its demonstration tag is entered in the module's Custom head markup field, and the module is assigned to this documentation page's menu item. HeadTag Manager inserts that markup inside <head>, without displaying a module block in the article.

Try it on this documentation and demo page:

  1. Right-click the page and choose View Page Source in your browser.
  2. Use Find to search for headtag-manager-demo.
  3. Find the actual meta tag inside <head>, before </head>. The escaped example in this article's body is only explanatory text.
  4. Check that its content reads Custom head module by topoweryou.com.

Expected module output:

<meta name="headtag-manager-demo" content="Custom head module by topoweryou.com">

You can also open your browser's developer tools, select Elements (or Inspector), expand <head> and locate the same meta tag. It is a demonstration marker, not a visible page element or a social sharing tag.

This shows how a custom module can add a specific tag to an assigned page without editing the template. The same module field accepts your own meta tags, link tags and JSON-LD markup. To inspect sharing tags too, use the included preview tool described above.

If the marker is absent from the head, the demo module is not currently outputting it. The sample sharing cards above remain illustrations. Custom modules work on article pages too; automatic article sharing tags and automatic menu image groups have their own separate settings.

5. Inspect automatically generated article tags

This Joomla article can demonstrate automatic sharing tags alongside the custom module. When Automatic article Open Graph is enabled for its category, HeadTag Manager generates sharing metadata from the article's title, description source and image settings. No custom module is needed for those automatic tags.

  1. Open View Page Source, or expand <head> in your browser's Elements / Inspector panel.
  2. Find og:title and compare its value with this article's title, or its configured social-title override.
  3. Find og:type: the generated value for an individual article is article.
  4. Inspect og:description, og:url and, when a valid image is available, og:image. Empty descriptions and unavailable images are omitted.
  5. If Twitter Cards are enabled, also look for twitter:card, twitter:title and the other generated Twitter tags.

Two features, one page: the headtag-manager-demo marker is manually entered in a custom HeadTag Manager module. The article sharing tags are generated automatically by the system plugin. Both can appear together inside the same HTML head.

Existing tags from your template or another extension may be retained when Preserve existing values is selected. A tag's presence alone does not identify which extension created it. When tag diagnostics are enabled, the preview tool can show HeadTag Manager's generated candidates, sources and duplicate-handling decisions.

Automatic tags appear only when the article feature is enabled and this article passes its category filter. See Automatic article sharing tags for setup. The menu image groups shown earlier apply to non-article menu pages; this article uses the article image settings.

Back to menu sharing setup View source on GitHub

Copyright © 2026 topoweryou.com. Author: Darko Fatur.

HeadTag Manager is distributed under the GNU General Public License, version 2 or later. Purchased update-domain limits apply to the update service, not to installation or use of the module.