{"id":303622,"date":"2026-04-30T08:59:41","date_gmt":"2026-04-30T08:59:41","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/seoyen-seo-platform\/"},"modified":"2026-04-30T08:59:19","modified_gmt":"2026-04-30T08:59:19","slug":"seoyen","status":"publish","type":"plugin","link":"https:\/\/ta-lk.wordpress.org\/plugins\/seoyen\/","author":17765454,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.12","stable_tag":"trunk","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"SEOYEN SEO Platform","header_author":"SEOYEN","header_description":"One-click WordPress integration for the SEOYEN SEO Platform \u2014 publish AI content, apply internal links, manage 301 redirects, auto-fix audit issues, and more.","assets_banners_color":"","last_updated":"2026-04-30 08:59:19","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/seoyen.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":45,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":[],"upgrade_notice":{"1.0.8":"<p>Autofix 57 check&#039;e \u00e7\u0131kar\u0131ld\u0131, 12 yeni t\u00fcr (twitter:card t\u00fcr\u00fc, HowTo\/Video\/Review schema, html lang, Claude\/Perplexity allow, d\u00fc\u015f\u00fck kelime say\u0131s\u0131, llms-full.txt). Schema builder + frontend geni\u015flemesi. \u00d6nerilen g\u00fcncelleme.<\/p>","1.0.7":"<p>Autofix 45 check&#039;e \u00e7\u0131kar\u0131ld\u0131, Schema builder, redirect chain resolver, AI bot y\u00f6netimi. \u00d6nerilen g\u00fcncelleme.<\/p>","1.0.6":"<p>D\u00fczeltme callback&#039;i + URL sat\u0131r\u0131 UI g\u00fcncelleme + AI hata mesaj\u0131 iyile\u015ftirme. \u00d6nerilen g\u00fcncelleme.<\/p>","1.0.5":"<p>AI tabanl\u0131 d\u00fczeltme sistemi eklendi. Tek T\u0131kla D\u00fczelt i\u00e7in Bireysel veya \u00fcst\u00fc paket ve AI kredisi gereklidir. Fallback mant\u0131\u011f\u0131 kald\u0131r\u0131ld\u0131 \u2014 yaln\u0131zca yapay zeka ile \u00e7al\u0131\u015f\u0131r. \u00d6nerilen g\u00fcncelleme.<\/p>","1.0.4":"<p>Tek T\u0131kla D\u00fczelt ak\u0131ll\u0131 fallback&#039;lerle tam \u00e7al\u0131\u015f\u0131r hale getirildi. Meta, alt metin, OG, hreflang otomatik \u00fcretilir. Toplu URL d\u00fczeltme eklendi. \u00d6nerilen g\u00fcncelleme.<\/p>","1.0.3":"<p>Kritik 403 nonce hatas\u0131 ve update &quot;Unauthorized&quot; hatas\u0131 \u00e7\u00f6z\u00fcld\u00fc. \u00d6nerilen g\u00fcncelleme.<\/p>","1.0.2":"<p>Tek T\u0131kla D\u00fczelt d\u00fczeltildi (403 fix), T\u00fcm\u00fc sekmesinde audit ve AI \u00f6nerileri birlikte, otomatik versiyon sync, tamamen T\u00fcrk\u00e7e UI. \u00d6nerilen g\u00fcncelleme.<\/p>","1.0.1":"<p>Site Audit Fixes + AI Articles tabs added, internal links auto-populate, setup wizard and redirect form fixes, foreign notice suppression, full-width admin pages. Recommended update.<\/p>","1.0.0":"<p>Initial public release.<\/p>"},"ratings":[],"assets_icons":{"icon.svg":{"filename":"icon.svg","revision":3519338,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":[],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3519338,"resolution":"1","location":"assets","locale":""},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3519338,"resolution":"2","location":"assets","locale":""},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3519338,"resolution":"3","location":"assets","locale":""},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3519338,"resolution":"4","location":"assets","locale":""},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3519338,"resolution":"5","location":"assets","locale":""},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3519338,"resolution":"6","location":"assets","locale":""}},"screenshots":{"1":"Dashboard overview with audit score, organic traffic summary, recent activity feed, and quick action cards for publish, redirects, audit, and panel.","2":"Redirect manager with sortable list, bulk actions, search, and CSV import for migrating from other redirect plugins or importing broken-backlink targets from the SEOYEN panel.","3":"Setup wizard \u2014 three-step API key, connect, and verify flow with inline validation.","4":"AI content suggestions \u2014 list of panel-generated drafts with one-click apply\/reject buttons and a preview of the incoming change.","5":"Activity log with date-range filter, action and result filters, search box, and CSV export.","6":"System status page with REST loopback test, active SEO plugin detection, and debug bundle downloader."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[195933,19933,726,1117,186],"plugin_category":[55],"plugin_contributors":[261520],"plugin_business_model":[],"class_list":["post-303622","plugin","type-plugin","status-publish","hentry","plugin_tags-ai-content","plugin_tags-internal-linking","plugin_tags-redirects","plugin_tags-schema","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-tevfikgulep","plugin_committers-tevfikgulep"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/seoyen\/assets\/icon.svg?rev=3519338","icon":"https:\/\/ps.w.org\/seoyen\/assets\/icon.svg?rev=3519338","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/seoyen\/assets\/screenshot-1.jpg?rev=3519338","caption":"Dashboard overview with audit score, organic traffic summary, recent activity feed, and quick action cards for publish, redirects, audit, and panel."},{"src":"https:\/\/ps.w.org\/seoyen\/assets\/screenshot-2.jpg?rev=3519338","caption":"Redirect manager with sortable list, bulk actions, search, and CSV import for migrating from other redirect plugins or importing broken-backlink targets from the SEOYEN panel."},{"src":"https:\/\/ps.w.org\/seoyen\/assets\/screenshot-3.jpg?rev=3519338","caption":"Setup wizard \u2014 three-step API key, connect, and verify flow with inline validation."},{"src":"https:\/\/ps.w.org\/seoyen\/assets\/screenshot-4.jpg?rev=3519338","caption":"AI content suggestions \u2014 list of panel-generated drafts with one-click apply\/reject buttons and a preview of the incoming change."},{"src":"https:\/\/ps.w.org\/seoyen\/assets\/screenshot-5.jpg?rev=3519338","caption":"Activity log with date-range filter, action and result filters, search box, and CSV export."},{"src":"https:\/\/ps.w.org\/seoyen\/assets\/screenshot-6.jpg?rev=3519338","caption":"System status page with REST loopback test, active SEO plugin detection, and debug bundle downloader."}],"raw_content":"<!--section=description-->\n<p>SEOYEN SEO Platform is the official WordPress companion plugin for the SEOYEN SEO platform (https:\/\/seoyen.com\/). It lets you apply decisions made in the SEOYEN panel to your WordPress site with a single click \u2014 publish AI-generated articles, add internal links from SEOYEN suggestions, fix audit issues, manage 301\/302\/307\/308\/410 redirects, write meta descriptions that work with every major SEO plugin, and much more.<\/p>\n\n<p>Use the plugin alongside an active SEOYEN account to turn panel recommendations into live site changes without copying and pasting, editing templates, or juggling multiple SEO tools.<\/p>\n\n<p><strong>Highlights<\/strong><\/p>\n\n<ul>\n<li>Publish AI-generated content (articles and paragraphs) from the SEOYEN panel straight to WordPress as drafts, scheduled posts, or published articles.<\/li>\n<li>Apply internal link suggestions with a single click, powered by a safe DOMDocument-based link inserter.<\/li>\n<li>Manage 301\/302\/307\/308\/410 redirects with per-hit analytics, support for exact, prefix, and regex matching, CSV bulk import, and automatic capture of broken backlinks.<\/li>\n<li>Auto-fix common SEO audit issues on 45 supported check types (title, meta description, canonical, robots.txt, schema Article\/Breadcrumb\/Organization\/WebSite\/Product\/FAQPage, Open Graph + Twitter Card geni\u015flemesi, hreflang, alt text, viewport, apple-touch-icon, theme-color, llms.txt, AI bot y\u00f6netimi, k\u0131r\u0131k link 301, y\u00f6nlendirme zinciri ve daha fazlas\u0131).<\/li>\n<li>Apply AI-generated meta descriptions across Yoast SEO, Rank Math, SEOPress, or the built-in native fallback \u2014 the plugin detects your active SEO plugin automatically.<\/li>\n<li>Set image alt text in bulk, including featured images and media library entries.<\/li>\n<li>Manage JSON-LD schema markup per post (append, replace, upsert) and output it in a single clean <code>&lt;script type=\"application\/ld+json\"&gt;<\/code> block.<\/li>\n<li>Convert content into social media drafts ready for your editorial workflow.<\/li>\n<li>Serve a custom <code>robots.txt<\/code> and <code>llms.txt<\/code> through virtual routes \u2014 no file permission changes required.<\/li>\n<li>Outbound webhook dispatcher with HMAC-SHA256 signing so you can forward activity to Zapier, Make, n8n, or your own endpoint.<\/li>\n<li>Complete activity log with search, filter, date range, and CSV export.<\/li>\n<li>System status page with REST loopback test, active SEO plugin detection, and a debug bundle downloader.<\/li>\n<\/ul>\n\n<p><strong>SEO plugin integrations<\/strong><\/p>\n\n<p>The plugin talks to existing SEO plugins so there are no conflicts:<\/p>\n\n<ul>\n<li>Yoast SEO (Free and Premium) \u2014 meta description, title, canonical, Open Graph.<\/li>\n<li>Rank Math \u2014 meta description, title, canonical, Open Graph.<\/li>\n<li>SEOPress \u2014 meta description, title, canonical, Open Graph.<\/li>\n<li>Native fallback \u2014 if no SEO plugin is active, the plugin outputs standards-compliant meta tags itself.<\/li>\n<\/ul>\n\n<p><strong>Dashboard widget<\/strong><\/p>\n\n<p>A native WordPress dashboard widget summarises your audit score, top tracked keywords, recent organic clicks, and the latest activity from both the panel and the plugin. Refreshable with a single click.<\/p>\n\n<p><strong>Privacy-first<\/strong><\/p>\n\n<p>The plugin does not make any remote call until you enter a SEOYEN API key and complete the three-step setup wizard. Telemetry is opt-in and disabled by default. On uninstall, plugin data is kept unless you explicitly opt in to full data removal.<\/p>\n\n<p><strong>SEOYEN account required for AI features<\/strong><\/p>\n\n<p>The internal-links apply, redirect management, and local admin tools work without an account. Panel-driven features (AI content, meta description generation, audit auto-fix driven from the panel, suggestion lists) require an active SEOYEN account so the WordPress plugin can talk to the panel API.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to external services to provide its functionality. The integrations are documented below so you can make an informed decision before activating them.<\/p>\n\n<p><strong>1. SEOYEN Panel API (required for panel-driven features)<\/strong><\/p>\n\n<ul>\n<li>Endpoint: <code>https:\/\/seoyen.com\/panel\/api\/api-platform.php<\/code><\/li>\n<li>What it does: Receives WordPress site actions (liveness pings, activation handshake, link\/meta\/schema\/alt\/social\/autofix apply callbacks, redirect sync, activity log sync) and returns the data the plugin needs to render panel-driven UI (audit summary, link suggestions, AI content, audit auto-fix instructions).<\/li>\n<li>When: Only after the user enters a SEOYEN API key in <strong>SEOYEN SEO &gt; Settings<\/strong> and completes the setup wizard. The plugin makes no outbound calls on activation or before the key is set.<\/li>\n<li>Data sent: site URL, admin email (once, during the first activation handshake), WordPress version, PHP version, plugin version, and action-specific payloads (e.g. redirect source and target URLs, meta description text, target post ID, activity log entries). No content of posts or media is sent unless you explicitly trigger a publish or apply action.<\/li>\n<li>Data received: AI-generated content, internal link suggestions, audit fixes, redirect and webhook configurations.<\/li>\n<li>Terms of service: https:\/\/seoyen.com\/sartlar\/<\/li>\n<li>Privacy policy: https:\/\/seoyen.com\/gizlilik\/<\/li>\n<\/ul>\n\n<p><strong>2. User-configured outbound webhooks (optional)<\/strong><\/p>\n\n<ul>\n<li>Endpoints: User-provided URLs entered in the webhook settings.<\/li>\n<li>What it does: When enabled, the plugin POSTs HMAC-SHA256-signed JSON payloads to the URLs you configure whenever a tracked event occurs (for example, a redirect being created or an AI meta description being applied). You control the URLs and the event types.<\/li>\n<li>When: Only if you explicitly add at least one webhook endpoint and enable it.<\/li>\n<li>Data sent: The event name and a minimal payload describing the event. No credentials or user information is included.<\/li>\n<li>Terms and privacy: Determined by the third party that owns the webhook endpoint.<\/li>\n<\/ul>\n\n<p><strong>3. WordPress core REST self-call (loopback)<\/strong><\/p>\n\n<p>During the setup wizard the plugin makes a single request to its own <code>\/wp-json\/seoyen\/v1\/ping<\/code> endpoint to verify REST API availability. This is a loopback request to the same WordPress install and does not leave the server.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin ZIP via <strong>Plugins &gt; Add New &gt; Upload Plugin<\/strong>, or unzip into <code>wp-content\/plugins\/seoyen\/<\/code>.<\/li>\n<li>Activate <strong>SEOYEN SEO Platform<\/strong> from the Plugins screen.<\/li>\n<li>Go to <strong>SEOYEN SEO &gt; Settings<\/strong> and paste the API key generated in the SEOYEN panel (Settings &gt; Integrations &gt; WordPress Plugin).<\/li>\n<li>Click <strong>Connect to Panel<\/strong>. The plugin will run a three-step handshake and report when the connection is active.<\/li>\n<li>Open the <strong>SEOYEN SEO<\/strong> top-level menu to explore the dashboard, redirects, internal links, content suggestions, activity log, and system status pages.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20seoyen%20account%3F\"><h3>Do I need a SEOYEN account?<\/h3><\/dt>\n<dd><p>Yes for AI and panel-driven features (AI content publish, meta description apply, audit auto-fix from the panel, suggestion lists, webhook dispatch back to the panel). The redirect manager, admin UI, and local debugging pages work without a panel connection.<\/p><\/dd>\n<dt id=\"which%20seo%20plugins%20are%20supported%3F\"><h3>Which SEO plugins are supported?<\/h3><\/dt>\n<dd><p>Yoast SEO (Free and Premium), Rank Math, and SEOPress are detected automatically. If none of these are active, the plugin falls back to writing meta descriptions, canonical tags, and Open Graph tags itself. You only need one of these (including the native fallback) to get meta description support.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20plugin%20without%20the%20seoyen%20panel%3F\"><h3>Can I use this plugin without the SEOYEN panel?<\/h3><\/dt>\n<dd><p>The redirect manager, admin UI, activity log, and system status work without a panel connection. AI features, audit auto-fix from the panel, and suggestion lists require an active SEOYEN account because the data comes from the panel API.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20track%20users%20on%20my%20site%3F\"><h3>Does this plugin track users on my site?<\/h3><\/dt>\n<dd><p>No. The plugin has no public-facing tracking scripts. Telemetry is strictly opt-in (disabled by default) and only sends plugin version, WordPress version, and PHP version when enabled.<\/p><\/dd>\n<dt id=\"how%20do%20redirects%20work%3F\"><h3>How do redirects work?<\/h3><\/dt>\n<dd><p>Redirects are stored in the custom table <code>{prefix}seoyen_redirects<\/code>. On every public request the plugin hooks <code>template_redirect<\/code> at priority 1, normalizes the request URI, looks up the destination, and \u2014 if a match is found \u2014 issues a <code>wp_safe_redirect()<\/code> with the configured status code. Hit counts are updated on the <code>shutdown<\/code> hook so they do not slow down the response.<\/p><\/dd>\n<dt id=\"will%20it%20conflict%20with%20yoast%2C%20rank%20math%2C%20or%20seopress%3F\"><h3>Will it conflict with Yoast, Rank Math, or SEOPress?<\/h3><\/dt>\n<dd><p>No. The plugin uses an adapter pattern. If Yoast is active, meta descriptions are written into Yoast's post meta keys; the same is true for Rank Math and SEOPress. If none are active, the plugin writes its own meta tags in the head. The plugin never outputs duplicate meta tags.<\/p><\/dd>\n<dt id=\"can%20i%20remove%20plugin%20data%20on%20uninstall%3F\"><h3>Can I remove plugin data on uninstall?<\/h3><\/dt>\n<dd><p>Yes. In <strong>SEOYEN SEO &gt; Settings<\/strong> there is a \"Keep data on uninstall\" toggle. When disabled, uninstalling the plugin drops the custom tables, deletes all <code>_seoyen_*<\/code> post meta, and removes all <code>seoyen_*<\/code> options. The default is to keep data so you can reactivate without losing redirects or activity history.<\/p><\/dd>\n<dt id=\"is%20it%20gpl-compatible%3F\"><h3>Is it GPL-compatible?<\/h3><\/dt>\n<dd><p>Yes. SEOYEN SEO Platform is released under GPLv2 or later, the same license as WordPress core.<\/p><\/dd>\n<dt id=\"where%20do%20i%20report%20bugs%20or%20request%20features%3F\"><h3>Where do I report bugs or request features?<\/h3><\/dt>\n<dd><p>Please contact support through https:\/\/seoyen.com\/ or open an issue in the SEOYEN panel's help section.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.12<\/h4>\n\n<ul>\n<li>WP.org inceleme revizeleri: <code>rest_url()<\/code> ile REST endpoint URL'leri d\u00fczeltildi (hardcoded <code>\/wp-json\/<\/code> kald\u0131r\u0131ld\u0131).<\/li>\n<li><code>register_setting()<\/code> \u00e7a\u011fr\u0131lar\u0131 tip-bazl\u0131 sanitize callback'lerle g\u00fcncellendi (<code>sanitize_text_field<\/code>, <code>sanitize_url<\/code>, <code>absint<\/code>, <code>rest_sanitize_boolean<\/code>).<\/li>\n<li>JSON-LD \u00e7\u0131kt\u0131s\u0131nda <code>&lt;\/script&gt;<\/code> breakout g\u00fcvenlik a\u00e7\u0131\u011f\u0131 kapat\u0131ld\u0131 \u2014 <code>JSON_UNESCAPED_SLASHES<\/code> kald\u0131r\u0131ld\u0131, <code>&lt;\\\/<\/code> replace korumas\u0131 eklendi.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Autofix kapsam\u0131 45 check'ten <strong>57 check'e<\/strong> \u00e7\u0131kar\u0131ld\u0131 \u2014 SEOYEN Panel audit'teki 12 yeni sorun t\u00fcr\u00fc art\u0131k tek t\u0131kla d\u00fczeltilebilir.<\/li>\n<li>5 yeni kay\u0131tl\u0131 check handler'\u0131: <code>content.meta_description_duplicate<\/code>, <code>content.low_word_count<\/code>, <code>content.h1_missing_in_content<\/code>, <code>schema.local_business_missing<\/code>, <code>ai_search.llms_full_missing<\/code> \u2014 panel registry ile plugin handler listesi senkronize edildi.<\/li>\n<li>7 yeni spec-gere\u011fi check handler'\u0131: <code>social_meta.twitter_card_type_missing<\/code>, <code>schema.how_to_missing<\/code>, <code>schema.video_missing<\/code>, <code>schema.review_missing<\/code>, <code>hreflang.html_lang_missing<\/code>, <code>ai_search.claude_bot_allowed<\/code>, <code>ai_search.perplexity_bot_allowed<\/code>.<\/li>\n<li>Schema Markup geni\u015flemesi: <strong>4 yeni builder<\/strong> \u2014 <code>build_howto<\/code> (H3\/H4 + P regex ile ad\u0131m parse), <code>build_video<\/code> (featured image thumbnail + yaz\u0131 bilgileri), <code>build_local_business<\/code> (site bilgileri + override deste\u011fi), <code>build_review<\/code> (rating\/author override ile).<\/li>\n<li>Frontend SEO Output geni\u015flemesi: apple-touch-icon, theme-color, twitter:card (site-level default) ve llms-full.txt virtual serving (<code>\/llms-full.txt<\/code>) art\u0131k plugin taraf\u0131ndan rendering priority 1'de emit edilir.<\/li>\n<li>HTML lang attribute filter: <code>language_attributes<\/code> WP filter'\u0131 \u00fczerinden kullan\u0131c\u0131 taraf\u0131ndan se\u00e7ilen locale uygulan\u0131r (BCP 47 kod do\u011frulamas\u0131 ile).<\/li>\n<li>AI bot allow kurallar\u0131: Claude ve Perplexity bot'lar\u0131 i\u00e7in ayr\u0131 <code>allow<\/code> modu \u2014 \u00f6nceki allow\/block toggle'dan farkl\u0131 olarak iki bot i\u00e7in de idempotent Allow: \/ yaz\u0131m\u0131.<\/li>\n<li>D\u00fc\u015f\u00fck kelime say\u0131s\u0131 (<code>content.low_word_count<\/code>) i\u00e7in AI tabanl\u0131 i\u00e7erik geni\u015fletme handler'\u0131 \u2014 panel AI <code>content-expand<\/code> promptu ile uzat\u0131lm\u0131\u015f i\u00e7eri\u011fi yaz\u0131ya ekler.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Autofix kapsam\u0131 14 check'ten <strong>45 check'e<\/strong> \u00e7\u0131kar\u0131ld\u0131 \u2014 SEOYEN Panel audit'in tespit etti\u011fi \u00e7ok daha geni\u015f bir sorun yelpazesi art\u0131k tek t\u0131kla d\u00fczeltilebilir.<\/li>\n<li>Yeni i\u00e7erik yeniden yazma (rewrite) handler'lar\u0131: ba\u015fl\u0131k \u00e7ok k\u0131sa\/uzun\/duplicate, meta a\u00e7\u0131klama \u00e7ok k\u0131sa\/uzun\/duplicate, H1 \u00e7ok uzun\/duplicate, alt metni \u00e7ok k\u0131sa\/uzun \u2014 her biri SEOYEN Panel'deki AI ile yeni i\u00e7erik \u00fcretir ve uygular.<\/li>\n<li>Schema Markup geni\u015flemesi: <strong>6 yeni builder<\/strong> \u2014 Article, BreadcrumbList, Organization, WebSite (SearchAction dahil), Product (WooCommerce entegrasyonlu), FAQPage (i\u00e7erikten Q&amp;A regex + Gutenberg FAQ block parse). Payload yoksa plugin kendisi \u00fcretir.<\/li>\n<li>Social Meta geni\u015flemesi: og:type, og:url, twitter:title, twitter:description, twitter:image i\u00e7in ayr\u0131 check_key deste\u011fi.<\/li>\n<li>Y\u00f6nlendirme Zinciri (Redirect Chain) \u00e7\u00f6z\u00fcc\u00fc: panel zinciri tespit etti\u011finde plugin ortadaki t\u00fcm redirect'leri pasifle\u015ftirip kaynak \u2192 son hedef tek 301'e d\u00fc\u015f\u00fcr\u00fcr.<\/li>\n<li>K\u0131r\u0131k D\u0131\u015f Link d\u00fczeltme: <code>links.broken_outgoing<\/code> art\u0131k yeni hedef URL geldi\u011finde otomatik 301 y\u00f6nlendirme olu\u015fturur (kay\u0131t <code>broken_backlinks<\/code> origin ile i\u015faretlenir).<\/li>\n<li>AI arama botlar\u0131 y\u00f6netimi: <code>ai_search.gpt_bot_blocked<\/code> ve <code>ai_search.claude_bot_blocked<\/code> check'leri GPTBot, ClaudeBot, anthropic-ai bot'lar\u0131n\u0131 robots.txt extra'ya allow\/block modunda ekler.<\/li>\n<li>Mobil ikon\/theme-color eksiklikleri: <code>mobile.apple_touch_icon_missing<\/code> (site ikonu fallback), <code>mobile.theme_color_missing<\/code> (varsay\u0131lan #8b5cf6) art\u0131k tek t\u0131kla d\u00fczeltilebilir.<\/li>\n<li>Yanl\u0131\u015f noindex kald\u0131rma: <code>crawlability.noindex_wrong<\/code> Yoast\/RankMath\/SEOPress\/native t\u00fcm seviyelerde noindex bayra\u011f\u0131n\u0131 temizler.<\/li>\n<li>\u00c7oklu meta\/title\/H1 tespiti: <code>content.multiple_title<\/code>, <code>content.multiple_meta_desc<\/code>, <code>content.multiple_h1<\/code> \u2014 theme d\u00fczenlemesi gerektiren check'ler i\u00e7in detection-only + T\u00fcrk\u00e7e a\u00e7\u0131klay\u0131c\u0131 hint.<\/li>\n<li>Integration base class'\u0131na <code>set_og_field($post_id, $field, $value)<\/code>, <code>set_twitter_field($post_id, $field, $value)<\/code>, <code>set_title()<\/code> (alias), <code>set_meta_desc()<\/code> (alias) metotlar\u0131 eklendi \u2014 plugin'lere ba\u011f\u0131ms\u0131z genel OG\/Twitter kontrol\u00fc sa\u011flar.<\/li>\n<li>FileManager'a <code>update_robots_ai_bots($action, $bots)<\/code> eklendi \u2014 robots.txt extra k\u0131sm\u0131nda AI bot bloklar\u0131n\u0131 idempotent \u015fekilde g\u00fcnceller (eski blok varsa temizlenir, yenisi yaz\u0131l\u0131r).<\/li>\n<li>RedirectManager'a <code>deactivate_intermediates($chain_urls)<\/code> eklendi \u2014 chain resolver i\u00e7in ortadaki 301'leri soft-delete (is_active=0) olarak i\u015faretler.<\/li>\n<li>SchemaManager builder'lar\u0131 Google Rich Results Test uyumlu @id + mainEntityOfPage yap\u0131s\u0131 kullan\u0131r.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Panel: wp_issue_fixed callback endpoint eklendi \u2014 plugin d\u00fczeltme tamamland\u0131\u011f\u0131nda panel audit_issues tablosunda resolved=1 (veya detection-only skip durumunda muted=1) i\u015faretlenir. Sayfa yenilendi\u011finde d\u00fczeltilen issue'lar listeden kaybolur.<\/li>\n<li>JS: Toplu URL d\u00fczeltme sonras\u0131 her URL sat\u0131r\u0131 \"\u2713 D\u00fczeltildi\" olarak g\u00f6rsel g\u00fcncellenir (ye\u015fil arka plan + disable button). Ba\u015far\u0131s\u0131z URL'ler k\u0131rm\u0131z\u0131 ile i\u015faretlenir.<\/li>\n<li>URL e\u015fle\u015ftirme iyile\u015ftirildi: trailing slash, http\/https, encoding farkl\u0131l\u0131klar\u0131 i\u00e7in \u00e7oklu varyant deneme (findUrlRow helper).<\/li>\n<li>AI hata mesajlar\u0131 iyile\u015ftirildi: \"Yapay zeka servisi \u015fu anda kullan\u0131lam\u0131yor. Birka\u00e7 dakika sonra tekrar deneyin.\" \u2014 HTTP 503 (\u00f6nceki 500\/502 yerine).<\/li>\n<li>CSS: .seoyen-audit-urls li.is-fixed \/ is-failed i\u00e7in g\u00f6rsel stilizasyon.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>AI-only d\u00fczeltme sistemi: Tek T\u0131kla D\u00fczelt art\u0131k ger\u00e7ek yapay zeka ile i\u00e7erik \u00fcretir. Meta a\u00e7\u0131klama, ba\u015fl\u0131k, H1, alt metin, OG, Twitter Card, schema, robots.txt ve llms.txt i\u00e7in tamamen AI tabanl\u0131 \u00fcretim.<\/li>\n<li>Fallback sistemi kald\u0131r\u0131ld\u0131: Yaz\u0131 slug'\u0131ndan, excerpt'ten veya dosya ad\u0131ndan otomatik \u00fcretilen eski \"ak\u0131ll\u0131 fallback\" mant\u0131\u011f\u0131 art\u0131k yok \u2014 payload AI'dan gelmek zorunda, yoksa \"Bu d\u00fczeltme yapay zeka ile i\u00e7erik \u00fcretmeyi gerektirir\" hatas\u0131 verir.<\/li>\n<li>10 yeni AI prompt \u015fablonu: Her autofix check t\u00fcr\u00fc i\u00e7in T\u00fcrk\u00e7e, SEO uyumlu, context-aware prompt.<\/li>\n<li>Yeni panel endpoint: <code>wp_generate_fix<\/code> \u2014 plugin AJAX handler'\u0131 \u00f6nce panel'den AI \u00fcretim ister, d\u00f6nen payload ile d\u00fczeltmeyi uygular.<\/li>\n<li>Context-aware AI \u00fcretim: Her autofix \u00e7a\u011fr\u0131s\u0131 WordPress'ten ilgili verileri (post ba\u015fl\u0131\u011f\u0131, i\u00e7erik \u00f6zeti, attachment meta, featured image, kategoriler, parent post) toplar ve AI'a ona g\u00f6re prompt g\u00f6nderir.<\/li>\n<li>AI kredi sistemi entegrasyonu: Kredi bitti\u011finde \"Yapay Zeka krediniz bitti\" modal'\u0131 g\u00f6sterilir, yenilenme tarihi g\u00f6r\u00fcnt\u00fclenir, i\u015flem yap\u0131lmaz.<\/li>\n<li>Plan gate: Tek T\u0131kla D\u00fczelt, AI Yay\u0131nla, Uygula, y\u00f6nlendirme y\u00f6netimi ve webhook olu\u015fturma gibi yazma aksiyonlar\u0131 yaln\u0131zca Bireysel, Pro ve Enterprise paketlerinde kullan\u0131labilir. \u00dccretsiz paket eklentiyi kurup panel verilerini g\u00f6r\u00fcnt\u00fcleyebilir ama yazma yapamaz.<\/li>\n<li>Quick access check endpoint (<code>wp_quick_access_check<\/code>): Plugin boot s\u0131ras\u0131nda kullan\u0131c\u0131n\u0131n plan ve kredi durumunu panel'den sorgular, 12 saat boyunca cache'ler, UI'\u0131 buna g\u00f6re ayarlar.<\/li>\n<li>Plan banner: \u00dccretsiz paket kullan\u0131c\u0131lar\u0131 i\u00e7in Dashboard ve \u0130\u00e7erik sayfalar\u0131nda bilgilendirme banner'\u0131.<\/li>\n<li>Credit banner: Kredi bitti\u011finde t\u00fcm ilgili sayfalarda yenilenme tarihi ile uyar\u0131 banner'\u0131.<\/li>\n<li>Detection-only check'ler korundu: <code>crawlability.canonical_missing<\/code>, <code>mobile.viewport_missing<\/code>, <code>social_meta.og_image_missing<\/code> ve <code>hreflang.missing<\/code> AI gerektirmez \u2014 WordPress verilerinden (permalink, featured image, WPML\/Polylang) otomatik uygulan\u0131r.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Tek T\u0131kla D\u00fczelt art\u0131k ger\u00e7ekten \u00e7al\u0131\u015f\u0131yor: audit handler'a 7 ak\u0131ll\u0131 fallback eklendi \u2014 payload bo\u015f g\u00f6nderildi\u011finde plugin WordPress verilerinden otomatik meta a\u00e7\u0131klama, alt metin, OG a\u00e7\u0131klama, hreflang vb. \u00fcretir.<\/li>\n<li>Meta ve OG a\u00e7\u0131klama fallback: yaz\u0131 excerpt'i varsa onu, yoksa i\u00e7eri\u011fin ilk 155 karakteri (HTML strip + kelime s\u0131n\u0131r\u0131ndan kesim) kullan\u0131l\u0131r.<\/li>\n<li>Alt metin fallback: attachment ba\u015fl\u0131\u011f\u0131 \u2192 parent post ba\u015fl\u0131\u011f\u0131 \u2192 dosya ad\u0131ndan insanla\u015ft\u0131r\u0131lm\u0131\u015f metin.<\/li>\n<li>Ba\u015fl\u0131k fallback: payload bo\u015fsa yaz\u0131 slug'\u0131ndan insanla\u015ft\u0131r\u0131lm\u0131\u015f ba\u015fl\u0131k \u00fcretilir.<\/li>\n<li>Hreflang ak\u0131ll\u0131 tespit: WPML\/Polylang aktifse alternatif URL'ler otomatik \u00e7ekilir; tek dilli siteler i\u00e7in \"skipped_no_alternates\" (sessiz ba\u015far\u0131) d\u00f6ner \u2014 hata vermez.<\/li>\n<li>URL resolve iyile\u015ftirmesi: query string, fragment, trailing slash, http\/https farkl\u0131l\u0131klar\u0131 art\u0131k otomatik handle ediliyor (get_page_by_path fallback dahil).<\/li>\n<li>Tek T\u0131kla D\u00fczelt butonu art\u0131k issue'daki T\u00dcM affected URL'leri s\u0131rayla d\u00fczeltir (ilk URL yerine). Kart \u00fczerinde canl\u0131 saya\u00e7: \"D\u00fczeltiliyor (3\/8)\u2026\".<\/li>\n<li>K\u0131smi ba\u015far\u0131 durumu: baz\u0131 URL'ler d\u00fczeltilip baz\u0131lar\u0131 hata verirse \"K\u0131smen d\u00fczeltildi (5\/8)\" mesaj\u0131 g\u00f6sterilir.<\/li>\n<li>Global audit fix'leri (viewport\/robots\/llms) URL gerektirmez \u2014 panel URL g\u00f6ndermese bile \u00e7al\u0131\u015f\u0131r.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>403 \"G\u00fcvenlik do\u011frulamas\u0131 ba\u015far\u0131s\u0131z\" hatas\u0131 kal\u0131c\u0131 olarak \u00e7\u00f6z\u00fcld\u00fc: Admin JS dosyalar\u0131 art\u0131k footer yerine header'a y\u00fckleniyor, wp_localize_script ile emit edilen seoyenAdmin objesi inline script bloklar\u0131ndan \u00f6nce haz\u0131r oluyor \u2014 nonce art\u0131k do\u011fru ge\u00e7iyor.<\/li>\n<li>Inline script'lerde ajaxUrl\/nonce de\u011fi\u015fkenleri art\u0131k butona basma an\u0131nda okunuyor (lazy read).<\/li>\n<li>Download endpoint (wp_download_plugin) art\u0131k X-Seoyen-Key header-auth ile de \u00e7al\u0131\u015f\u0131yor \u2014 WP native g\u00fcncelleme ak\u0131\u015f\u0131nda \"Unauthorized\" hatas\u0131 \u00e7\u00f6z\u00fcld\u00fc.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Tek T\u0131kla D\u00fczelt ve Bunu D\u00fczelt butonlar\u0131 d\u00fczeltildi: AJAX handler art\u0131k REST dispatch yerine do\u011frudan Seoyen_Audit_Handler::autofix() \u00e7a\u011f\u0131r\u0131yor (X-Seoyen-Key header beklentisi bypass edildi, admin nonce yeterli).<\/li>\n<li>403 \"Forbidden\" hatas\u0131 d\u00fczeltildi: T\u00fcm seoyen_admin ve seoyen_redirects_action nonce kontrolleri art\u0131k graceful fail veriyor \u2014 kullan\u0131c\u0131ya \"Sayfay\u0131 yenileyip tekrar deneyin\" mesaj\u0131 g\u00f6sterilir (wp_die yerine JSON error).<\/li>\n<li>\"T\u00fcm\u00fc\" sekmesi art\u0131k hem Site Denetimi d\u00fczeltmelerini hem de AI \u00f6nerilerini\/makalelerini yan yana g\u00f6steriyor.<\/li>\n<li>Plugin g\u00fcncelleme sonras\u0131 panel'e otomatik versiyon sync eklendi: upgrader_process_complete sonras\u0131 ve admin_init'te plugin_version mismatch varsa panel'e wp_site_status ping at\u0131l\u0131yor \u2014 \"G\u00fcncelleme mevcut\" badge'i art\u0131k Check Now gerektirmeden kaybolur.<\/li>\n<li>T\u00fcm admin UI tamamen T\u00fcrk\u00e7ele\u015ftirildi: men\u00fc, sekmeler, kartlar, butonlar, bildirimler. ASCII-safe yaz\u0131mlar (baglan, icin, duzelt, vs.) do\u011fru T\u00fcrk\u00e7e karakterlere (ba\u011flan, i\u00e7in, d\u00fczelt) \u00e7evrildi.<\/li>\n<li>Setup wizard \"API key required\" hatas\u0131 d\u00fczeltildi: key \u00f6nce option'a yaz\u0131lmadan explicit olarak test edilir.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Added Site Audit Fixes tab in Content Suggestions page: shows up to 14 auto-fixable audit checks pulled from the SEOYEN panel with one-click fix buttons.<\/li>\n<li>Added AI Articles tab in Content Suggestions page: lists completed AI Writer articles from the panel with Publish-to-WP action.<\/li>\n<li>Internal Links page now reads from the live link_opportunities data source; suggestions auto-populate whenever the panel internal-links page is visited.<\/li>\n<li>Fixed setup wizard \"API key required\" error by passing the key explicitly on the activation request instead of relying on the option cache.<\/li>\n<li>Fixed redirect form: source and target URLs accepted as relative paths (<code>\/eski<\/code>, <code>\/yeni<\/code>) and site-local full URLs; no more <code>http:\/\/yeni<\/code> corruption.<\/li>\n<li>Suppressed foreign admin notices on SEOYEN admin pages so the page title area is not polluted by other plugins.<\/li>\n<li>Made Dashboard, Settings, Redirects, and System Status pages use the full content width.<\/li>\n<li>Added WP native update flow with dual-source detection (WordPress.org if the plugin is listed there, SEOYEN panel otherwise).<\/li>\n<li>Added plugin admin update banner with version-based dismiss and security-update override.<\/li>\n<li>Added panel \"Check for Updates\" button on the Settings &gt; General tab.<\/li>\n<li>Added menu entry \"WordPress Eklentisi\" in the SEOYEN panel sidebar with a dedicated install\/upgrade page and per-project API key management.<\/li>\n<li>Added Turkish translation (.po \/ .mo) plus JSON translations for admin JS.<\/li>\n<li>Panel update_check endpoint parses <code>Version<\/code>, <code>Stable tag<\/code>, tested\/requires\/requires_php, changelog, and upgrade_notice from the readme.txt.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<li>34 REST API endpoints under <code>\/wp-json\/seoyen\/v1\/<\/code> (system, content, meta, media, schema, social, links, redirects, audit, files, activity, bulk, webhooks).<\/li>\n<li>4 SEO plugin adapters (Yoast SEO, Rank Math, SEOPress, native fallback).<\/li>\n<li>14 audit auto-fix check types (title_missing, meta_missing, h1_missing, alt_missing, canonical_missing, robots_missing, json_ld_missing, og_missing, viewport_missing, hreflang_missing, llms_txt_missing, and more).<\/li>\n<li>Redirect manager with exact \/ prefix \/ regex matching, hit-count analytics, and CSV bulk import.<\/li>\n<li>Seven admin pages: Dashboard, Settings, Redirects, Internal Links, Content Suggestions, Activity Log, System Status.<\/li>\n<li>Dashboard widget for wp-admin index page.<\/li>\n<li>Outbound webhook dispatcher with HMAC-SHA256 signing.<\/li>\n<li>Activity log with search, filter, and CSV export.<\/li>\n<li>Virtual <code>robots.txt<\/code> and <code>llms.txt<\/code> serving.<\/li>\n<li>Full i18n support with POT template (<code>languages\/seoyen.pot<\/code>).<\/li>\n<\/ul>","raw_excerpt":"One-click WordPress integration for the SEOYEN SEO platform. AI content, internal links, redirects, schema, audit auto-fix.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ta-lk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/303622","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ta-lk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ta-lk.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ta-lk.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=303622"}],"author":[{"embeddable":true,"href":"https:\/\/ta-lk.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/tevfikgulep"}],"wp:attachment":[{"href":"https:\/\/ta-lk.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=303622"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ta-lk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=303622"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ta-lk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=303622"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ta-lk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=303622"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ta-lk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=303622"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ta-lk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=303622"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}