EffortLess Custom Meta Tags

Description

EffortLess Custom Meta Tags prints meta tags in the <head> of every front-end page, from the settings in Settings > Meta Tags. On a multisite network, a super admin can also set defaults for every site in Network Admin > Settings > Meta Tags.

Settings of each site (Settings > Meta Tags):

  • Description: printed as <meta name="description"> on every page. A post or page with a manual excerpt uses its excerpt instead, when “Posts and pages” is ticked.
  • Posts and pages (ticked by default): a post or page shown on its own uses its own title, address (og:url), manual excerpt and featured image in the Open Graph and X tags, and the settings are used for the home page and as the fallback. Unticked, every page prints the same values from the settings.
  • Open Graph tags (off by default): prints og:type (article for posts, website otherwise), og:site_name, og:locale (the site’s language), og:title, og:description, og:url, og:image with og:image:width, og:image:height and og:image:alt, and the publication and modification times of posts. Facebook, LinkedIn, WhatsApp, Slack and others read these tags.
    • Title: empty uses the site title.
    • Description: empty uses the Description above.
    • Image: click “Choose or upload an image” to pick an image from the Media Library or upload one, or type an image address. The size and the alternative text come from the Media Library. 1200 × 630 pixels works on most networks.
    • Home page address: the og:url of the home page.
    • Image alternative text: describes the shared image in the site’s language; empty uses the image’s alternative text from the Media Library. A post’s own featured image keeps its own alternative text.
    • Site name: empty uses the site title.
  • X tags (off by default): prints twitter:card, twitter:site, twitter:title, twitter:description, twitter:image and twitter:image:alt.
    • Card type: large image (summary_large_image, the default) or small square image (summary).
    • X account: your @username; a profile address is also accepted.
    • Title and Description: empty lets X use the Open Graph values.
    • Image: empty uses the Open Graph image.
  • Google (structured data) (off by default): prints a JSON-LD block on the home page describing the organization (Organization: name, logo, social profiles in sameAs) and the website (WebSite: name, language). Google uses it for the logo and name in its results and knowledge panel.
    • Business name: empty uses the site title. The website name is the Open Graph site name.
    • Logo: chosen or uploaded in the Media Library; at least 112 × 112 pixels, readable on a white background. Empty uses the site icon (Settings > General).
    • Social profiles: one address per line (Facebook, Instagram, YouTube, X, LinkedIn, Google Business Profile, TripAdvisor…).
  • Image preview size: the max-image-preview value of the robots tag WordPress prints (large, standard or none). WordPress already uses large on sites visible to search engines.
  • Text and video previews: adds max-snippet:-1 and max-video-preview:-1 to the robots tag.
  • Site verification: codes for Google Search Console, Bing Webmaster Tools, Pinterest and Facebook (Meta) domain verification, printed on the home page only. You can paste the whole tag the service gives you; only its code is kept.
  • Content-Security-Policy: one directive per line; the lines are joined with semicolons into one <meta http-equiv="Content-Security-Policy"> tag.

Network defaults (Network Admin > Settings > Meta Tags, multisite only): Open Graph and X tags and the Google structured data on for every site, default Open Graph, X and logo images from the main site’s Media Library, the social profiles, the X card type and account, the image preview size, text and video previews, the verification codes and the Content-Security-Policy. A site’s own value, when filled in, is used instead of the network default; a tag type turned on for the network is on for every site. Titles, descriptions, the home page address and the names stay per site, since each site may be in another language.

Installation

  1. In Plugins > Add New, search for “EffortLess Custom Meta Tags”, install it and activate it. On a multisite network you can network-activate it in Network Admin > Plugins.
  2. Go to Settings > Meta Tags.
  3. Write the Description.
  4. Tick “Add Open Graph tags”, then click “Choose or upload an image” and choose the image shown when the site is shared.
  5. Tick “Add X (Twitter) card tags” if you share on X, and enter your X account.
  6. Click “Save Changes”.
  7. On a network, go to Network Admin > Settings > Meta Tags to set the values every site shares, then set each site’s title and description on that site.

FAQ

I configured it but nothing happens

  • The tags are printed by the theme’s wp_head() call: a theme that does not call it prints none of them.
  • Open Graph and X tags are printed only when “Add Open Graph tags” or “Add X (Twitter) card tags” is ticked, on the site or for the network.
  • Verification codes are printed on the home page only.
  • The robots settings change nothing while Settings > Reading asks search engines not to index the site.
  • A page cache may keep the old page: clear it after saving.
  • Social networks keep their own copy of a shared page. Use the Facebook Sharing Debugger or LinkedIn Post Inspector to fetch it again.

A shared post shows the site image instead of its own

Tick “Posts and pages” and give the post a featured image. Posts without a featured image use the image of the settings.

A page has two meta descriptions

EffortLess Custom SEO Meta’s per-page “Meta description” takes precedence: this plugin then prints no description of its own for that page and uses that text in the Open Graph and X tags. For another SEO plugin, turn off one of the two descriptions, or return the page description with the elcmt_page_description filter.

Another SEO plugin also prints Open Graph tags

Turn off the Open Graph and X tags in one of the two plugins, so each tag is printed once.

What CSP format should I use?

One directive per line, for example:

default-src 'self'
img-src 'self' data: https:

A policy set in a meta tag cannot use frame-ancestors, report-uri or sandbox. A wrong policy can block the site’s own scripts, styles or images: check the browser console after saving.

Which image does each service use?

  • Facebook, LinkedIn, WhatsApp, LINE, Telegram, Pinterest, Slack, Discord and Google Discover: the Open Graph image (or the post’s featured image).
  • X: the X image, or the Open Graph image when it is empty.
  • Google’s logo for the business: the Logo of the Google section, or the site icon.
  • The small icon next to the site in Google results and on phone home screens: the WordPress site icon, set in Settings > General.

Google picks the thumbnails beside ordinary search results from the images in the page itself; no tag chooses them.

Another plugin already prints structured data

Leave “Add the organization and website structured data” off, so Google does not read two descriptions of the same organization.

Are the descriptions translated on a multilingual network?

With EffortLess Multisite Auto Translate (3.3.25 or later) network-activated, its Sync Design translates the description, the Open Graph and X titles and descriptions, the site name and the Google business name of the source site into every language site. Write them on the source site, then run Sync Design; a value written on a language site is replaced at the next Sync Design. Posts and pages use their own translated excerpt.

Does it work on multisite?

Yes. Each site has its own settings, and a super admin can set network defaults. In the network settings, “Choose or upload an image” shows the main site’s Media Library; to use an image of another site (for example the source language site), copy its address on that site (Media > Library > the image > “Copy URL to clipboard”) and paste it in the image box.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“EffortLess Custom Meta Tags” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.25

  • New: “Image alternative text” in Settings > Meta Tags describes the shared image in the site’s language (og:image:alt, twitter:image:alt), for an image shared by every site whose own alternative text is in one language. EffortLess Multisite Auto Translate’s Sync Design translates it from the source site.

1.0.24

  • Fix: a page with its own “Meta description” in EffortLess Custom SEO Meta got two description tags (that one and this plugin’s Description). Such a page now gets only the SEO plugin’s tag, and its Open Graph and X descriptions use that text. Other plugins can provide a page description with the elcmt_page_description filter.

1.0.23

  • New: in Network Admin > Settings > Meta Tags, an image can be the pasted address of an image from any site’s Media Library (“Copy URL to clipboard”); its size and alternative text are added when saving. The image picker there only shows the main site’s library.

1.0.22

  • New: with EffortLess Multisite Auto Translate 3.3.25 or later, its Sync Design translates this plugin’s text settings (description, Open Graph and X titles and descriptions, site name, Google business name) from the source site into every language site.

1.0.21

  • New: Google section printing the organization and website structured data (JSON-LD) on the home page: business name, logo chosen in the Media Library (or the site icon), and social profiles.
  • New: network default X image and Google logo in Network Admin > Settings > Meta Tags.

1.0.20

  • New: choose or upload the Open Graph and X images in the Media Library. The image’s size and alternative text are added (og:image:width, og:image:height, og:image:alt, twitter:image:alt).
  • New: posts and pages use their own title, address, manual excerpt and featured image (setting “Posts and pages”, on by default). Before, every page shared the home page’s title, image and address.
  • New: og:type, og:site_name, og:locale and the publication times of posts; X account (twitter:site); card type chosen from a list.
  • New: image preview size and full-length text and video previews in the robots tag WordPress prints, instead of a second robots tag.
  • New: site verification codes for Google, Bing, Pinterest and Facebook.
  • New: network defaults in Network Admin > Settings > Meta Tags on multisite.
  • Fix: the Content-Security-Policy lines are joined with semicolons. Before, directives on separate lines without a semicolon were read as one directive.
  • Fix: the settings page loaded a script and a style that were not in the plugin.
  • Change: uninstalling deletes the settings of every site.

1.0.19

  • Added bundled translation files: a template (.pot) and translations for Spanish, Traditional Chinese, Korean, French, Japanese, German, Italian and Brazilian Portuguese.

1.0.18

  • Change: the bundled donate-notice class is renamed from the shared Effortless_Donate_Notice to ELCMT_Donate_Notice, so the class name carries this plugin’s own prefix and cannot collide with another EffortLess plugin loading its own copy.

1.0.17

  • Change: tested against WordPress 7.1 and the “Tested up to” header updated to 7.1. No functional changes.
  • Change: the donate notice’s outbound link no longer includes the site address as a query parameter. It still identifies the plugin and version so support requests can be matched to a release, but not which installation was viewing it.

1.0.16

  • Change: moved the settings page from a standalone “EffortLess” top-level menu to Settings > Meta Tags.