{"id":343333,"date":"2026-07-21T16:24:18","date_gmt":"2026-07-21T16:24:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/snigirev-meta-alt\/"},"modified":"2026-07-21T16:23:44","modified_gmt":"2026-07-21T16:23:44","slug":"snigirev-meta-alt","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/snigirev-meta-alt\/","author":18510714,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"7.0.2","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Snigirev Meta & Alt","header_author":"\u041f\u0430\u0432\u0435\u043b \u0421\u043d\u0438\u0433\u0438\u0440\u0435\u0432","header_description":"SEO \u0434\u043b\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 (\u0440\u0443\u0447\u043d\u043e\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 ALT\/Title\/Caption\/Description), \u043c\u0435\u0442\u0430-\u0442\u0435\u0433\u0438 title\/description, schema.org \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430, XML-\u043a\u0430\u0440\u0442\u0430 \u0441\u0430\u0439\u0442\u0430, robots.txt, Open Graph \u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 301\/302-\u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0432.","assets_banners_color":"","last_updated":"2026-07-21 16:23:44","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":24,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"mkrabs","date":"2026-07-21 16:23:44"}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[17214,6357,726,1117,186],"plugin_category":[55],"plugin_contributors":[272671],"plugin_business_model":[],"class_list":["post-343333","plugin","type-plugin","status-publish","hentry","plugin_tags-alt-text","plugin_tags-image-seo","plugin_tags-redirects","plugin_tags-schema","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-mkrabs","plugin_committers-mkrabs"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/snigirev-meta-alt.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>A free SEO plugin: manual editing of ALT\/Title\/Caption\/Description for\nMedia Library images, SEO title\/description for posts and pages, basic\nschema.org markup (JSON-LD, Article\/WebPage), an XML sitemap and\nrobots.txt.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Media Library: scan images missing ALT text (global mode) and browse\nthe images used on a specific page\/post (\"per page\" mode), edit\nALT\/Title\/Caption\/Description, save one card at a time or in bulk with\nthe \"Save all\" button<\/li>\n<li>Meta tags: a metabox on the post edit screen with SEO title\/description\nfields, output of the tags on the front end (<code>&lt;title&gt;<\/code>,\n  )<\/li>\n<li>Default templates (\"Smart Tags\", modeled after AIOSEO): if a post has no\ncustom SEO Title\/Description, the site-wide template from Settings is\nused, with placeholders <code>#post_title<\/code>, <code>#site_title<\/code>, <code>#tagline<\/code>,\n  #separator, <code>#current_year<\/code>, <code>#current_date<\/code> \u2014 the post metabox shows\nwhat will actually be output before you even save. In Settings, tags\nare inserted with a button click, and a live preview with real site\nvalues is shown right under the field<\/li>\n<li>Schema.org: JSON-LD Article (posts) \/ WebPage (pages) markup in\n  wp_head, reusing the values from the Meta module<\/li>\n<li>XML sitemap at <code>\/sitemap.xml<\/code> \u2014 all public posts\/pages, generated\ndynamically on request (no file written to disk), can be toggled in\nSettings<\/li>\n<li>robots.txt: extra rules from Settings are appended to WordPress's\nstandard virtual robots.txt, plus an automatic <code>Sitemap:<\/code> line pointing\nto the sitemap (if enabled)<\/li>\n<li>Open Graph (<code>og:title<\/code>, <code>og:description<\/code>, <code>og:image<\/code>, <code>og:url<\/code>,\n  og:site_name, <code>og:locale<\/code>) in <code>wp_head<\/code> \u2014 a single standard parsed by\nVKontakte, Odnoklassniki, Telegram and MAX for link previews. Reuses\nthe same values as SEO title\/description (see Meta\/Smart Tags above)<\/li>\n<li>301\/302 redirects: a rule is \"source (path, <code>*<\/code> allowed as a prefix\nwildcard) \u2192 destination (full URL)\", managed as a list with\nenable\/disable and delete right in the admin screen (Snigirev Meta &amp;\nAlt \u2192 Redirects), checked on every request before the page is output<\/li>\n<\/ul>\n\n<h4>Extended AI version<\/h4>\n\n<p>If you need automatic AI generation of ALT text\/title\/caption\/description\nfor images and AI-generated SEO Title\/Description for posts and pages,\nthat's a separate paid product, <strong>Snigirev AI Meta &amp; Alt<\/strong> (the full\nversion), not distributed through the WordPress.org directory. Details\nand purchase: <a href=\"https:\/\/aiseobooster.aeropic.ru\/\">aiseobooster.aeropic.ru<\/a>.\nSnigirev Meta &amp; Alt is a standalone free plugin that works fully on its\nown, with no integration with the paid version.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin does not send any data to external services. All assets\n(including the select2 library used for the page\/post dropdown on the\n\"Snigirev Meta &amp; Alt\" media screen) are bundled with the plugin and\nserved from your own site \u2014 no third-party CDN or remote service is\ncontacted, neither from the server nor from the administrator's browser.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Unzip the archive and upload the <code>snigirev-meta-alt<\/code> folder to\n   \/wp-content\/plugins\/ (or use Plugins \u2192 Add New \u2192 Upload Plugin with\nthe archive itself)<\/li>\n<li>Activate the plugin through the \"Plugins\" menu<\/li>\n<li>Snigirev Meta &amp; Alt (menu item) \u2014 scan and edit image SEO fields<\/li>\n<li>On any post\/page edit screen \u2014 the \"Snigirev Meta &amp; Alt \u2014 meta tags\"\nmetabox for SEO title\/description<\/li>\n<li>Snigirev Meta &amp; Alt \u2192 Settings \u2014 meta tag templates, XML sitemap,\nrobots.txt<\/li>\n<li>Snigirev Meta &amp; Alt \u2192 Redirects \u2014 manage 301\/302 redirects<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20license%20or%20registration%3F\"><h3>Do I need a license or registration?<\/h3><\/dt>\n<dd><p>No. Snigirev Meta &amp; Alt is completely free, with no license keys and no\nfeature restrictions.<\/p><\/dd>\n<dt id=\"does%20this%20version%20include%20ai-generated%20alt%20text%20and%20descriptions%3F\"><h3>Does this version include AI-generated ALT text and descriptions?<\/h3><\/dt>\n<dd><p>No. This version only supports manual editing of ALT\/Title\/Caption\/\nDescription and SEO Title\/Description. AI generation is available in the\nseparate paid product Snigirev AI Meta &amp; Alt (see \"Extended AI version\"\nabove).<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20my%20site%27s%20data%20anywhere%3F\"><h3>Does the plugin send my site's data anywhere?<\/h3><\/dt>\n<dd><p>No, the server side of the plugin makes no external HTTP requests. See\nthe External Services section above for details.<\/p><\/dd>\n<dt id=\"how%20do%20i%20contact%20support%3F\"><h3>How do I contact support?<\/h3><\/dt>\n<dd><p>Author: Pavel Snigirev.\nEmail: A-FONIKI@yandex.ru.\nPhone: +7 903 200-82-22.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Security fix: hardened JSON-LD output in the Schema module against XSS\nvia post title\/description (switched to HEX-escaping JSON flags).<\/li>\n<li>Updated the bundled select2 library to the final stable 4.1.0 release\n(was a pre-release build).<\/li>\n<li>Rewrote the media-screen SQL queries to use fully literal, documented\n  $wpdb-&gt;prepare() calls (no runtime-built query text passed to\n  prepare()), and documented the one unavoidable variable-length <code>IN()<\/code>\nplaceholder list with an explicit code comment.<\/li>\n<li>Renamed the internal plugin bootstrap function to match WordPress\nCoding Standards naming conventions.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Bundled the select2 library locally instead of loading it from a CDN.<\/li>\n<li>Hardened SQL queries in the media screen to use $wpdb-&gt;prepare()\nthroughout.<\/li>\n<li>Added missing input sanitization\/unslashing for a few request\nparameters.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release of Snigirev Meta &amp; Alt: image SEO fields (manual\nediting), title\/description meta tags with Smart Tags, schema.org,\nXML sitemap, robots.txt, Open Graph, redirect manager.<\/li>\n<\/ul>","raw_excerpt":"Image SEO: ALT\/Title\/Caption\/Description, meta title\/description, schema.org markup, XML sitemap, robots.txt, Open Graph, redirects.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/343333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=343333"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mkrabs"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=343333"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=343333"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=343333"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=343333"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=343333"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=343333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}