WordPress SEO Plugin – Rank Math - Version 1.0.98.2

Version Description

[Sep 24, 2022] = * Fixed: Clicking on the Questions tab of Content AI was crashing the editor on some setups * Fixed: Button to open the Rank Math modal was not working in the Divi's Frontend editor on some installations * Fixed: Error in console when Frontend Stats Bar option was enabled

Note: From the next update, we will stop supporting older versions.

Full changelog can be found here - Rank Math changelog

Download this release

Release Info

Developer rankmath
Plugin Icon 128x128 WordPress SEO Plugin – Rank Math
Version 1.0.98.2
Comparing to
See all releases

Code changes from version 1.0.98.1 to 1.0.98.2

includes/3rdparty/divi/class-divi.php CHANGED
@@ -140,6 +140,8 @@ class Divi {
140
  ]
141
  );
142
 
 
 
143
  Helper::add_json(
144
  'validationl10n',
145
  [
140
  ]
141
  );
142
 
143
+ Helper::add_json( 'links', KB::get_links() );
144
+
145
  Helper::add_json(
146
  'validationl10n',
147
  [
includes/modules/analytics/class-analytics-stats.php CHANGED
@@ -11,6 +11,7 @@
11
  namespace RankMath\Analytics;
12
 
13
  use RankMath\Helper;
 
14
  use RankMath\Traits\Hooker;
15
 
16
  defined( 'ABSPATH' ) || exit;
@@ -47,5 +48,7 @@ class Analytics_Stats {
47
 
48
  Helper::add_json( 'isAnalyticsConnected', \RankMath\Google\Analytics::is_analytics_connected() );
49
  Helper::add_json( 'hideFrontendStats', get_user_meta( get_current_user_id(), 'rank_math_hide_frontend_stats', true ) );
 
 
50
  }
51
  }
11
  namespace RankMath\Analytics;
12
 
13
  use RankMath\Helper;
14
+ use RankMath\KB;
15
  use RankMath\Traits\Hooker;
16
 
17
  defined( 'ABSPATH' ) || exit;
48
 
49
  Helper::add_json( 'isAnalyticsConnected', \RankMath\Google\Analytics::is_analytics_connected() );
50
  Helper::add_json( 'hideFrontendStats', get_user_meta( get_current_user_id(), 'rank_math_hide_frontend_stats', true ) );
51
+
52
+ Helper::add_json( 'links', KB::get_links() );
53
  }
54
  }
includes/modules/content-ai/assets/js/content-ai.js CHANGED
@@ -1 +1 @@
1
- !function(){var e={184:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function a(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var o=typeof n;if("string"===o||"number"===o)e.push(n);else if(Array.isArray(n)){if(n.length){var i=a.apply(null,n);i&&e.push(i)}}else if("object"===o){if(n.toString!==Object.prototype.toString&&!n.toString.toString().includes("[native code]")){e.push(n.toString());continue}for(var c in n)r.call(n,c)&&n[c]&&e.push(c)}}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(n=function(){return a}.apply(t,[]))||(e.exports=n)}()}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,n),o.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){"use strict";var e=jQuery,t=n.n(e),r=n(184),a=n.n(r),o=lodash,i=wp.i18n,c=wp.hooks,s=wp.components,l=wp.element,u=wp.plugins,m=wp.editPost,p=wp.data,h=wp.compose,f=wp.apiFetch,d=n.n(f);function y(e){return y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},y(e)}function k(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function w(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function b(e,t){return b=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},b(e,t)}function v(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=E(e);if(t){var a=E(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return g(this,n)}}function g(e,t){if(t&&("object"===y(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _(e)}function _(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function E(e){return E=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},E(e)}var C=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&b(e,t)}(c,e);var t,n,r,a=v(c);function c(){var e;return k(this,c),(e=a.apply(this,arguments)).state={score:0},e.setState=e.setState.bind(_(e)),e}return t=c,(n=[{key:"render",value:function(){var e=this;return setTimeout((function(){e.setState({score:e.props.score})}),1e3),wp.element.createElement("div",{className:"rank-math-ca-score"},wp.element.createElement("div",{className:"score-text"},(0,i.__)("Score:","rank-math")," ",this.state.score,wp.element.createElement("span",null," / ",(0,i.__)("100","rank-math"))),wp.element.createElement("div",{className:"score-wrapper"},wp.element.createElement("span",{className:"score-dot",style:{left:((0,o.inRange)(this.state.score,0,5)?5:this.state.score)+"%"}})))}}])&&w(t.prototype,n),r&&w(t,r),Object.defineProperty(t,"prototype",{writable:!1}),c}(l.Component),S=(0,h.compose)((0,p.withSelect)((function(e){var t=Object.values(e("rank-math").getContentAIScore());return{score:(0,o.round)((0,o.sum)(t)/t.length)}})))(C);function O(e){return 100<e?"bad-fk dark":80<e?"good-fk":50<e?"ok-fk":"bad-fk"}function N(e){return N="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},N(e)}function j(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function P(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function R(e,t){return R=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},R(e,t)}function T(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=I(e);if(t){var a=I(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return A(this,n)}}function A(e,t){if(t&&("object"===N(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return x(e)}function x(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function I(e){return I=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},I(e)}var D=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&R(e,t)}(s,e);var t,n,r,c=T(s);function s(){var e;return j(this,s),(e=c.apply(this,arguments)).state={activeTab:""},e.setState=e.setState.bind(x(e)),e}return t=s,n=[{key:"render",value:function(){return wp.element.createElement("div",{className:"rank-math-ca-recommendations"},this.getRecommendations(this.props.recommendations))}},{key:"getRecommendations",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=[];return(0,o.forEach)(e,(function(e,c){if("total"!==c){var s=(0,o.isUndefined)(e.total)?e:e.total,l=t.getPostStats(c),u=a()(c,{"has-children":!(0,o.isUndefined)(e.total),show:c===t.state.activeTab}),m=t.getScore(c,l,s,n),p=(0,o.ceil)(150*s/100);r.push(wp.element.createElement("div",{className:u+" "+O(m),onClick:function(){return t.setState({activeTab:t.state.activeTab!==c?c:""})},role:"presentation"},wp.element.createElement("h4",null,n?c:(0,o.startCase)(c)),n&&wp.element.createElement("span",null,l," / ",s),!n&&wp.element.createElement(React.Fragment,null,wp.element.createElement("strong",null,l),wp.element.createElement("span",{className:"desc"},(0,i.__)("Use","rank-math")," ",s," ",(0,i.__)("to","rank-math")," ",p)),(0,o.isObject)(e)&&t.getRecommendations(e,!0)))}})),n?wp.element.createElement("div",{className:"submenu"},r):r}},{key:"getPostStats",value:function(e){return(0,o.has)(this.props.postStats,e)?this.props.postStats[e]:0}},{key:"getScore",value:function(e,t,n,r){var a=t===n?100:t/n*100;if(0===n&&t<=2&&(a=100),r)return a>100&&a<=125?100:a;var o=a>80?100:t/n*80;return a>125&&"wordCount"!==e&&(o=0),this.props.updateAiScore(e,o),a>100&&"wordCount"===e||a>100&&a<=125?100:a}}],n&&P(t.prototype,n),r&&P(t,r),Object.defineProperty(t,"prototype",{writable:!1}),s}(l.Component),M=(0,h.compose)((0,p.withSelect)((function(e,t){var n=1518,r=12,a=2,i=5,c=3,s=0,l=0,u=0,m=8,p=19;if(t.hasCredits){var h=t.researcher.getResearch("wordCount"),f=rankMathEditor.assessor.analyzer.defaultAnalyses.contentHasAssets;n=h(t.content),r=(0,o.isUndefined)(f)?0:f.getImages(t.researcher.paper,t.content),a=(0,o.isUndefined)(f)?0:f.getVideos(t.content),i=(t.content.match(/<h2\b[^>]*>(.*?)<\/h2>/g)||[]).length,c=(t.content.match(/<h3\b[^>]*>(.*?)<\/h3>/g)||[]).length,s=(t.content.match(/<h4\b[^>]*>(.*?)<\/h4>/g)||[]).length,l=(t.content.match(/<h5\b[^>]*>(.*?)<\/h5>/g)||[]).length,u=(t.content.match(/<h6\b[^>]*>(.*?)<\/h6>/g)||[]).length;var d=t.researcher.getResearch("getLinkStats")(t.content);m=d.internalTotal,p=d.externalTotal}return{postStats:{wordCount:n,images:r,videos:a,mediaCount:r+a,h2:i,h3:c,h4:s,h5:l,h6:u,headingCount:i+c+s+l+u,internal:m,external:p,linkCount:m+p}}})))(D);function B(e){return B="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},B(e)}var K=["tabId","onClick","children","selected"];function F(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function L(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function U(e,t){return U=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},U(e,t)}function q(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=z(e);if(t){var a=z(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return $(this,n)}}function $(e,t){if(t&&("object"===B(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return H(e)}function H(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function z(e){return z=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},z(e)}function W(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Q(){return Q=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Q.apply(this,arguments)}function V(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var J=function(e){var t=e.tabId,n=e.onClick,r=e.children,a=e.selected,o=V(e,K);return wp.element.createElement(s.Button,Q({role:"tab",tabIndex:a?null:-1,"aria-selected":a,id:t,onClick:n},o),r)},Y=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&U(e,t)}(c,e);var t,n,r,i=q(c);function c(){var e;F(this,c),W(H(e=i.apply(this,arguments)),"handleClick",(function(t){var n=e.props.onSelect,r=void 0===n?o.noop:n;e.setState({selected:t}),r(t)})),W(H(e),"onNavigate",(function(e,t){t.click()}));var t=e.props,n=t.tabs,r=t.initialTabName;return e.state={selected:r||(n.length>0?n[0].name:null)},e}return t=c,(n=[{key:"render",value:function(){var e=this,t=this.state.selected,n=this.props,r=n.activeClass,i=void 0===r?"is-active":r,c=n.className,l=n.instanceId,u=n.orientation,m=void 0===u?"horizontal":u,p=n.tabs,h=(0,o.find)(p,{name:t}),f=l+"-"+h.name,d=p.slice(4);return wp.element.createElement("div",{className:c},wp.element.createElement(s.NavigableMenu,{role:"tablist",orientation:m,onNavigate:this.onNavigate,className:"components-tab-panel__tabs "+t},p.slice(0,4).map((function(n){return wp.element.createElement(J,{className:a()("components-tab-panel__tabs-item",n.className,W({},i,n.name===t)),tabId:l+"-"+n.name,"aria-controls":l+"-"+n.name+"-view",selected:n.name===t,key:n.name,onClick:(0,o.partial)(e.handleClick,n.name)},n.title)})),d.map((function(n){return wp.element.createElement(J,{className:a()("components-tab-panel__tabs-item",n.className,W({},i,n.name===t)),tabId:l+"-"+n.name,"aria-controls":l+"-"+n.name+"-view",selected:n.name===t,key:n.name,onClick:(0,o.partial)(e.handleClick,n.name)},n.title)}))),h&&wp.element.createElement("div",{"aria-labelledby":f,role:"tabpanel",id:f+"-view",className:"components-tab-panel__tab-content"},this.props.children(h)))}}])&&L(t.prototype,n),r&&L(t,r),Object.defineProperty(t,"prototype",{writable:!1}),c}(l.Component),G=(0,h.withInstanceId)(Y),X=rankMathAnalyzer;function Z(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=rankMath.links[e]||"";if(!n)return"#";if(!t)return n;var r={utm_source:"Plugin",utm_medium:encodeURIComponent(t),utm_campaign:"WP"};return n+"?"+Object.keys(r).map((function(e){return"".concat(e,"=").concat(r[e])})).join("&")}function ee(e){return ee="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ee(e)}function te(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ne(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function re(e,t){return re=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},re(e,t)}function ae(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=ce(e);if(t){var a=ce(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return oe(this,n)}}function oe(e,t){if(t&&("object"===ee(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return ie(e)}function ie(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ce(e){return ce=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},ce(e)}var se=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&re(e,t)}(u,e);var t,n,r,c=ae(u);function u(){var e;return te(this,u),(e=c.apply(this,arguments)).state={type:"content",selected:""},e.setState=e.setState.bind(ie(e)),e.initializeClipboard(e.setState),e}return t=u,n=[{key:"initializeClipboard",value:function(e){"function"==typeof ClipboardJS&&this.props.hasCredits&&new ClipboardJS(".rank-math-tooltip strong",{text:function(e){return e.getAttribute("data-key")}}).on("success",(function(){setTimeout((function(){e({selected:""})}),3e3)}))}},{key:"render",value:function(){var e=this;return wp.element.createElement(l.Fragment,null,wp.element.createElement(s.PanelBody,{initialOpen:!0},wp.element.createElement(s.SelectControl,{label:(0,i.__)("Use Keyword in","rank-math"),value:this.state.type,options:[{value:"content",label:(0,i.__)("Content","rank-math")},{value:"heading",label:(0,i.__)("Headings","rank-math")},{value:"title",label:(0,i.__)("SEO Title","rank-math")},{value:"description",label:(0,i.__)("SEO Description","rank-math")}],onChange:function(t){e.setState({type:t})}}),wp.element.createElement("a",{href:Z("content-ai-keywords","Sidebar Keywords KB Icon"),rel:"noreferrer",target:"_blank",id:"rank-math-help-icon",title:(0,i.__)("Know more about Keywords.","rank-math")},"﹖"),wp.element.createElement(React.Fragment,null,wp.element.createElement("span",{className:"components-form-token-field__help"},(0,i.__)("Click on any keyword to copy it.","rank-math")),wp.element.createElement("br",null),(0,o.includes)(["title","description"],this.state.type)&&wp.element.createElement("span",{className:"components-form-token-field__help"},(0,i.__)("Please use only one or two keywords from here.","rank-math")),wp.element.createElement("ul",null,this.getKeywords())),this.getRelatedKeywords()))}},{key:"getRelatedKeywords",value:function(){var e=this;if("content"!==this.state.type||(0,o.isEmpty)(this.props.caData.data.related_keywords))return!1;var t=[];return(0,o.forEach)(this.props.caData.data.related_keywords,(function(n){t.push(wp.element.createElement("li",{className:"rank-math-tooltip show",onClick:function(){return e.setState({selected:n})},role:"presentation"},wp.element.createElement("strong",{"data-key":n},n),e.getTooltipContent({keyword:n},!0)))})),wp.element.createElement("div",{className:"rank-math-related-keywords"},wp.element.createElement("h3",null,(0,i.__)("Related Keywords","rank-math")),wp.element.createElement("ul",null,t))}},{key:"getKeywords",value:function(){var e=this;if((0,o.isEmpty)(this.props.caData.data.keywords))return wp.element.createElement("h3",{className:"no-data"},(0,i.__)("There are no recommended Keywords for this researched keyword.","rank-math"));var t=[];return this.contentAiScore={},(0,o.forEach)(this.props.caData.data.keywords,(function(n,r){(0,o.isEmpty)(n)||(e.contentAiScore[r]={},(0,o.forEach)(n,(function(n){var o=e.props.hasCredits?e.getCount(n.keyword,r):n.count,i=O(e.getScore(n.keyword,o,n.average,r)),c=a()("rank-math-tooltip",{show:e.state.type===r});t.push(wp.element.createElement("li",{className:c+" "+i,onClick:function(){return e.setState({selected:n.keyword})},role:"presentation"},wp.element.createElement("strong",{"data-key":n.keyword},n.keyword,wp.element.createElement("span",null,o," / ",n.average)),e.getTooltipContent(n)))})))})),this.updateContentAiScore(),t}},{key:"updateContentAiScore",value:function(){var e=0,t=0;(0,o.forEach)(this.contentAiScore,(function(n,r){var a=Object.values(n),i=(0,o.sum)(a);"title"!==r&&"description"!==r||100!==(0,o.max)(a)||(i=100*a.length),e+=i,t+=a.length})),e/=t,(0,o.isNaN)(e)||this.props.updateAiScore("keywords",e)}},{key:"getScore",value:function(e,t,n,r){var a=t/n*100;return this.contentAiScore[r][e]=a>100?0:a>80?100:a,a}},{key:"getTooltipContent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.props.hasCredits)return this.state.selected===e.keyword?wp.element.createElement("span",{className:"rank-math-tooltip-data"},(0,i.__)("Copied","rank-math")):e.competition||e.cpc||e.search_volume?wp.element.createElement("span",{className:"rank-math-tooltip-data"},wp.element.createElement("span",null,(0,i.__)("Ad Competition:","rank-math")," ",(0,o.round)(100*e.competition)),wp.element.createElement("span",null,(0,i.__)("CPC:","rank-math")," $",(0,o.round)(e.cpc,2)),wp.element.createElement("span",null,(0,i.__)("Volume:","rank-math")," ",(0,o.round)(e.search_volume))):wp.element.createElement("span",{className:"rank-math-tooltip-data"},t?(0,i.__)("Click to copy keyword","rank-math"):(0,i.__)("No data available","rank-math"))}},{key:"getCount",value:function(e,t){var n=this.props.caData.content;if(e=X.Helpers.removeDiacritics(e).toLowerCase(),"heading"===t){e=e.replace(/[\\^$*+?.()|[\]{}]/g,"\\$&");var r=new RegExp("<h[2-6][^>]*>.*?"+e+".*?</h[2-6]>","g"),a=n.match(r);return(0,o.isNull)(a)?0:a.length}return"title"===t&&(n=this.props.caData.title),"description"===t&&(n=this.props.caData.description),X.Helpers.cleanTagsOnly(n).split(e).length-1}}],n&&ne(t.prototype,n),r&&ne(t,r),Object.defineProperty(t,"prototype",{writable:!1}),u}(l.Component),le=(0,h.compose)((0,p.withDispatch)((function(e){return{toggleEditor:function(){e("rank-math").toggleSnippetEditor(!0)}}})))(se),ue=function(){return!((0,o.isNil)(window.wp)||(0,o.isNil)(wp.data)||(0,o.isNil)(wp.data.select("core/editor"))||!window.document.body.classList.contains("block-editor-page")||!(0,o.isFunction)(wp.data.select("core/editor").getEditedPostAttribute))};function me(e){return me="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},me(e)}function pe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function he(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function fe(e,t){return fe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},fe(e,t)}function de(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=we(e);if(t){var a=we(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return ye(this,n)}}function ye(e,t){if(t&&("object"===me(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return ke(e)}function ke(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function we(e){return we=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},we(e)}var be=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&fe(e,t)}(c,e);var t,n,r,a=de(c);function c(){var e;return pe(this,c),(e=a.apply(this,arguments)).state={iconClass:"rm-icon-copy",selected:""},e.setState=e.setState.bind(ke(e)),e.initializeClipboard(e.setState),e}return t=c,(n=[{key:"initializeClipboard",value:function(e){var t=this;"function"==typeof ClipboardJS&&new ClipboardJS(".rank-math-copy-questions, .rank-math-questions-item h3",{text:function(e){if(!(0,o.isNull)(e.getAttribute("data-key")))return e.getAttribute("data-key");if(!ue())return document.getElementById("rank-math-ca-questions-data").innerHTML;var n=[];return(0,o.forEach)(t.props.caData.data.related_questions,(function(e){n.push({id:(0,o.uniqueId)("faq-question-"),title:e,content:"",visible:!0})})),"\x3c!-- wp:rank-math/faq-block "+JSON.stringify({questions:n})+' --\x3e<div class="wp-block-rank-math-faq-block"></div>\x3c!-- /wp:rank-math/faq-block --\x3e'}}).on("success",(function(){setTimeout((function(){e({iconClass:"rm-icon-copy"})}),3e3)}))}},{key:"render",value:function(){var e=this,t=[];return(0,o.isEmpty)(this.props.caData.data.related_questions)?wp.element.createElement("h3",{className:"no-data"},(0,i.__)("There are no recommended Questions for this researched keyword.","rank-math")):((0,o.forEach)(this.props.caData.data.related_questions,(function(n){t.push(wp.element.createElement("div",{className:"rank-math-questions-item"},wp.element.createElement("h3",{className:"rank-math-tooltip","data-key":n,onClick:function(){return e.setState({selected:n})},role:"presentation"},n,e.getTooltipContent(n))))})),wp.element.createElement(l.Fragment,null,wp.element.createElement(s.PanelBody,{initialOpen:!0},wp.element.createElement("div",{className:"rank-math-section-heading"},wp.element.createElement("h2",null,(0,i.__)("Related Questions","rank-math"),wp.element.createElement("a",{href:getLink("content-ai-settings","Sidebar Questions KB Icon"),rel:"noreferrer",target:"_blank",id:"rank-math-help-icon",title:(0,i.__)("Know more about Questions.","rank-math")},"﹖")),wp.element.createElement(s.Button,{onClick:function(){e.setState({iconClass:"rm-icon-tick"})},className:"rank-math-copy-questions button-secondary rank-math-tooltip left"},wp.element.createElement("i",{className:"rm-icon "+this.state.iconClass}),wp.element.createElement("span",null,(0,i.__)("Copy this data as a FAQ Block.","rank-math")))),wp.element.createElement("span",{className:"components-form-token-field__help"},(0,i.__)("Click on any question to copy it.","rank-math")),wp.element.createElement("div",{id:"rank-math-ca-questions-data"},t))))}},{key:"getTooltipContent",value:function(e){return this.state.selected===e&&wp.element.createElement("span",{className:"rank-math-tooltip-data"},(0,i.__)("Copied","rank-math"))}}])&&he(t.prototype,n),r&&he(t,r),Object.defineProperty(t,"prototype",{writable:!1}),c}(l.Component),ve=be,ge=function(e){var t=[];return(0,o.isEmpty)(e.caData.data.links)?wp.element.createElement("h3",{className:"no-data"},(0,i.__)("There are no recommended Links for this researched keyword.","rank-math")):((0,o.forEach)(e.caData.data.links,(function(e){return t.push(wp.element.createElement("li",null,wp.element.createElement("a",{href:e,rel:"noreferrer",target:"_blank"},e)))})),wp.element.createElement(l.Fragment,null,wp.element.createElement(s.PanelBody,{initialOpen:!0},wp.element.createElement("div",{className:"rank-math-section-heading"},wp.element.createElement("h2",null,(0,i.__)("Related External Links","rank-math"),wp.element.createElement("a",{href:Z("content-ai-links","Sidebar Links KB Icon"),rel:"noreferrer",target:"_blank",id:"rank-math-help-icon",title:(0,i.__)("Know more about Links.","rank-math")},"﹖")),wp.element.createElement("p",null,(0,i.__)("Use some of these external links in the content area. It is recommended to add","rank-math")," ",wp.element.createElement("a",{href:Z("about-and-mentions-schema","Use Some External Links"),rel:"noreferrer",target:"_blank"},(0,i.__)("about or mention Schema.","rank-math")))),wp.element.createElement("ul",null,t))))},_e=function(e){"social"===e&&(0,p.dispatch)("rank-math").toggleSnippetEditor(!0)},Ee=function(e){return wp.element.createElement(G,{className:"rank-math-contentai-tabs",activeClass:"is-active",tabs:[{name:"keywords",title:wp.element.createElement(l.Fragment,null,wp.element.createElement("span",null,(0,i.__)("Keywords","rank-math"))),view:le,className:"rank-math-keywords-tab"},{name:"questions",title:wp.element.createElement(l.Fragment,null,wp.element.createElement("span",null,(0,i.__)("Questions","rank-math"))),view:ve,className:"rank-math-questions-tab"},{name:"links",title:wp.element.createElement(l.Fragment,null,wp.element.createElement("span",null,(0,i.__)("Links","rank-math"))),view:ge,className:"rank-math-recommended-links-tab"}],onSelect:_e,data:e},(function(t){return wp.element.createElement("div",{className:"rank-math-contentai-tab-content-"+t.name},(0,l.createElement)(t.view,e))}))},Ce=React;function Se(e){return e.startsWith("{{/")?{type:"componentClose",value:e.replace(/\W/g,"")}:e.endsWith("/}}")?{type:"componentSelfClosing",value:e.replace(/\W/g,"")}:e.startsWith("{{")?{type:"componentOpen",value:e.replace(/\W/g,"")}:{type:"string",value:e}}function Oe(e,t){let n,r,a=[];for(let o=0;o<e.length;o++){const i=e[o];if("string"!==i.type){if(void 0===t[i.value])throw new Error(`Invalid interpolation, missing component node: \`${i.value}\``);if("object"!=typeof t[i.value])throw new Error(`Invalid interpolation, component node must be a ReactElement or null: \`${i.value}\``);if("componentClose"===i.type)throw new Error(`Missing opening component token: \`${i.value}\``);if("componentOpen"===i.type){n=t[i.value],r=o;break}a.push(t[i.value])}else a.push(i.value)}if(n){const o=function(e,t){const n=t[e];let r=0;for(let a=e+1;a<t.length;a++){const e=t[a];if(e.value===n.value){if("componentOpen"===e.type){r++;continue}if("componentClose"===e.type){if(0===r)return a;r--}}}throw new Error("Missing closing component token `"+n.value+"`")}(r,e),i=Oe(e.slice(r+1,o),t),c=(0,Ce.cloneElement)(n,{},i);if(a.push(c),o<e.length-1){const n=Oe(e.slice(o+1),t);a=a.concat(n)}}return a=a.filter(Boolean),0===a.length?null:1===a.length?a[0]:(0,Ce.createElement)(Ce.Fragment,null,...a)}function Ne(e){const{mixedString:t,components:n,throwErrors:r}=e;if(!n)return t;if("object"!=typeof n){if(r)throw new Error(`Interpolation Error: unable to process \`${t}\` because components is not an object`);return t}const a=function(e){return e.split(/(\{\{\/?\s*\w+\s*\/?\}\})/g).map(Se)}(t);try{return Oe(a,n)}catch(e){if(r)throw new Error(`Interpolation Error: unable to process \`${t}\` because of error \`${e.message}\``);return t}}var je=function(e){var t=e.tags,n=e.components,r=e.children;return n=n||{},!1===(0,o.isUndefined)(t)&&(t=t.split(",")).forEach((function(e){var t=e;n[e]=wp.element.createElement(t,null)})),Ne({mixedString:r,components:n})};function Pe(e){return Pe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Pe(e)}function Re(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Te(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Ae(e,t){return Ae=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Ae(e,t)}function xe(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Me(e);if(t){var a=Me(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return Ie(this,n)}}function Ie(e,t){if(t&&("object"===Pe(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return De(e)}function De(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Me(e){return Me=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Me(e)}var Be=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ae(e,t)}(m,e);var n,r,c,u=xe(m);function m(){var e;return Re(this,m),(e=u.apply(this,arguments)).state={keyword:e.props.keyword,showResearch:e.props.keyword!==rankMath.ca_keyword.keyword,country:e.props.country,credits:1,creditsValue:rankMath.ca_credits,loading:!1,loadingCredits:!1},e.setState=e.setState.bind(De(e)),e}return n=m,(r=[{key:"componentDidMount",value:function(){!this.state.creditsValue&&rankMath.isUserRegistered&&this.updateCredits()}},{key:"updateCredits",value:function(){var e=this;this.setState({loadingCredits:!0}),d()({method:"POST",path:"/rankmath/v1/ca/getCredits"}).catch((function(t){e.setState({loadingCredits:!1}),alert(t.message)})).then((function(t){e.setState({creditsValue:t}),e.setState({loadingCredits:!1})}))}},{key:"render",value:function(){var e=rankMath.isUserRegistered&&(0,o.isNumber)(this.state.credits),t=a()("rank-math-content-ai-data",{loading:this.state.loading,blurred:!e}),n=this.props.data;return(!e&&(0,o.isEmpty)(n)||"show_dummy_data"===n)&&(n=this.getDummyData()),wp.element.createElement(l.Fragment,null,wp.element.createElement(s.PanelBody,{className:"rank-math-content-ai-wrapper",initialOpen:!0},wp.element.createElement(React.Fragment,null,this.getHeader(),!rankMath.isUserRegistered&&this.connectAccountNotice(),rankMath.isUserRegistered&&!e&&this.creditsNotice(e),e&&this.keywordField(),wp.element.createElement("div",{className:t},wp.element.createElement("span",{className:"loader-text"},wp.element.createElement("span",null,(0,i.__)("Fetching Search Results","rank-math")),wp.element.createElement("span",null,(0,i.__)("Analysing Your Competitors","rank-math")),wp.element.createElement("span",null,(0,i.__)("Crunching the Numbers","rank-math")),wp.element.createElement("span",null,(0,i.__)("Cooking a Personalized SEO Plan","rank-math")),wp.element.createElement("span",null,(0,i.__)("Final Touches to the SEO Recommendations","rank-math"))),(0,o.isString)(n)&&wp.element.createElement("h3",{className:"no-data"},n),!(0,o.isEmpty)(n)&&!(0,o.isString)(n)&&wp.element.createElement("div",null,wp.element.createElement("h3",{className:"rank-math-ca-section-title"},(0,i.__)("Content AI","rank-math"),wp.element.createElement("span",null,(0,i.__)("New!","rank-math")),wp.element.createElement("a",{href:Z("content-ai-settings","Sidebar KB Icon"),rel:"noreferrer",target:"_blank",id:"rank-math-help-icon",title:(0,i.__)("Content AI Knowledge Base.","rank-math")},"﹖")),wp.element.createElement(S,null),wp.element.createElement(M,{recommendations:n.recommendations,hasCredits:e,content:this.props.content,researcher:this.props.researcher,updateAiScore:this.props.updateAiScore,hasThumbnail:this.props.hasThumbnail}),wp.element.createElement(Ee,{caData:this.props,updateAiScore:this.props.updateAiScore,hasCredits:e}))))))}},{key:"getDummyData",value:function(){return{keywords:{content:{"rank math":{keyword:"rank math",average:17,count:12},"rank math vs yoast seo":{keyword:"rank math vs yoast seo",average:1,count:1},"what is rank math":{keyword:"what is rank math",average:1,count:1},"rank math schema":{keyword:"rank math schema",average:1,count:1},"rank math configuration":{keyword:"rank math configuration",average:1,count:1},"rank math pro version":{keyword:"rank math pro version",average:1,count:2},"rank math comparison":{keyword:"rank math comparison",average:1,count:1},"rank math for seo":{keyword:"rank math for seo",average:1,count:1},"seo by rank math":{keyword:"seo by rank math",average:1,count:0}}},related_keywords:["rank math plugin","rank math pricing","rank math vs yoast","rank math review","rank math premium","how to use rank math","rank math training","rank math woocommerce","wordpress seo plugin"],recommendations:{wordCount:1829,linkCount:{total:16},headingCount:{total:9},mediaCount:{total:18}}}}},{key:"getHeader",value:function(){var e=this;return wp.element.createElement("div",{className:"rank-math-ca-top-section"},wp.element.createElement(s.Button,{onClick:function(){return t()(".rank-math-general-tab").trigger("click")}},wp.element.createElement("i",{className:"dashicons dashicons-arrow-left-alt"}),(0,i.__)("Back","rank-math")),wp.element.createElement(s.SelectControl,{value:this.state.country,onChange:function(t){return e.setState({country:t,showResearch:!0})},options:rankMath.countries}))}},{key:"keywordField",value:function(){var e=this,t=a()("rank-math-tooltip update-credits",{loading:this.state.loadingCredits});return wp.element.createElement("div",{className:"rank-math-ca-keywords-wrapper"},wp.element.createElement("div",{className:"rank-math-ca-credits-wrapper"},wp.element.createElement(s.TextControl,{label:(0,i.__)("Focus Keyword","rank-math"),value:this.state.keyword,onChange:function(t){return e.setState({keyword:t,showResearch:!0})},onKeyDown:function(e){"Enter"===e.key&&e.preventDefault()},help:wp.element.createElement(React.Fragment,null,(0,i.__)("Upgrade to buy more credits from ","rank-math"),wp.element.createElement("a",{href:Z("content-ai-pricing-tables","Sidebar Upgrade Text"),rel:"noreferrer",target:"_blank",title:(0,i.__)("Content AI Pricing.","rank-math")},(0,i.__)("here.","rank-math"))),placeholder:(0,i.__)("Suggested length 2-3 Words","rank-math")}),wp.element.createElement("div",{className:"help-text"},(0,i.__)("To learn how to use it","rank-math")," ",wp.element.createElement("a",{href:Z("content-ai-settings","Content AI Sidebar KB Link"),target:"_blank",rel:"noreferrer"},(0,i.__)("Click here","rank-math"))),!this.state.showResearch&&!this.state.loading&&!(0,o.isEmpty)(this.props.data)&&wp.element.createElement(s.Button,{className:"rank-math-ca-force-update rank-math-tooltip left",onClick:function(){return e.props.researchKeyword(e.state,e.setState,!0)}},wp.element.createElement("i",{className:"dashicons dashicons-image-rotate"}),wp.element.createElement("span",null,(0,i.__)("Refresh will use one new credit.","rank-math"))),wp.element.createElement("div",{className:"rank-math-ca-credits"},wp.element.createElement(s.Button,{className:t,onClick:function(){return e.updateCredits()}},wp.element.createElement("i",{className:"dashicons dashicons-image-rotate"}),wp.element.createElement("span",null,(0,i.__)("Click to refresh the available credits.","rank-math"))),wp.element.createElement("span",null,(0,i.__)("Credits","rank-math")),wp.element.createElement("a",{href:Z("content-ai-credits-usage","Sidebar Credits Tooltip Icon"),rel:"noreferrer",target:"_blank",id:"rank-math-help-icon",title:(0,i.__)("Know more about credits.","rank-math")},"﹖"),wp.element.createElement("strong",null,this.state.creditsValue))),this.state.showResearch&&wp.element.createElement(s.Button,{className:"is-primary",onClick:function(){return e.props.researchKeyword(e.state,e.setState)},title:(0,i.__)("One credit will be used.","rank-math"),disabled:!this.state.keyword},(0,i.__)("Research","rank-math")))}},{key:"connectAccountNotice",value:function(){return wp.element.createElement("div",{className:"rank-math-ca-warning"},wp.element.createElement("h3",null,(0,i.__)("Content AI","rank-math")),wp.element.createElement("p",null,(0,i.__)("Please connect your account to use this feature.","rank-math")),wp.element.createElement(s.Button,{href:rankMath.connectSiteUrl,className:"is-primary"},(0,i.__)("Connect Now","rank-math")))}},{key:"creditsNotice",value:function(){return wp.element.createElement("div",{className:"rank-math-ca-warning"},wp.element.createElement("h3",null,(0,i.__)("Content AI","rank-math")),"site_limit_reached"===this.state.credits&&wp.element.createElement("p",null,wp.element.createElement(je,{components:{link1:wp.element.createElement("a",{href:Z("free-account","Sidebar No Credits"),target:"_blank",rel:"noopener noreferrer"}),link2:wp.element.createElement("a",{href:Z("content-ai-pricing-tables","Sidebar No Credits"),target:"_blank",rel:"noopener noreferrer"})}},(0,i.__)("All credits assigned to this site are used. Please add more credits from {{link1}}My Account{{/link1}} Page or {{link2}}upgrade your plan{{/link2}}.","rank-math"))),"account_limit_reached"===this.state.credits&&wp.element.createElement(React.Fragment,null,wp.element.createElement("p",null,(0,i.__)("You don't have any credits left.","rank-math")),wp.element.createElement(s.Button,{href:Z("content-ai-pricing-tables","Sidebar No Credits"),target:"_blank",rel:"noreferrer",className:"is-primary"},(0,i.__)("Get More Credits","rank-math"))))}}])&&Te(n.prototype,r),c&&Te(n,c),Object.defineProperty(n,"prototype",{writable:!1}),m}(l.Component),Ke=(0,h.compose)((0,p.withSelect)((function(e){var t=rankMathEditor.assessor.analyzer.researcher,n=t.paper;return{data:e("rank-math").getKeywordsData(),keyword:(0,o.get)(rankMath.ca_keyword,"keyword",e("rank-math").getKeywords().split(",")[0]),country:(0,o.get)(rankMath.ca_keyword,"country",rankMath.contentAiCountry),researcher:t,content:(0,o.isUndefined)(n)?"":n.getTextLower(),title:(0,o.isUndefined)(n)?"":n.getTitle().toLowerCase(),description:(0,o.isUndefined)(n)?"":n.getDescription().toLowerCase(),hasThumbnail:(0,o.isUndefined)(n)?"":n.hasThumbnail(),score:e("rank-math").getContentAIScore()}})),(0,p.withDispatch)((function(e,t){return{researchKeyword:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t.force_update=r,t.objectID=rankMath.objectID,t.objectType=rankMath.objectType,n({showResearch:!1,loading:!0}),d()({method:"POST",path:"/rankmath/v1/ca/researchKeyword",data:t}).catch((function(e){n({loading:!1,showResearch:!0}),alert(e.message)})).then((function(t){n({loading:!1}),e("rank-math").updateKeywordsData(t.data),(0,o.isNull)(t.credits)||(0,o.isUndefined)(t.credits)||n({credits:t.credits,creditsValue:(0,o.isNumber)(t.credits)?t.credits:0}),(0,c.doAction)("rank_math_content_ai_changed",t.keyword)}))},updateAiScore:function(n,r){var a=t.score;a[n]=(0,o.round)(r,2),e("rank-math").updateAIScore(a)}}})))(Be);function Fe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var Le=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),rankMath.isUserRegistered&&(this.init=this.init.bind(this),this.contentLength=this.contentLength.bind(this),this.contentLengthBoundary=this.contentLengthBoundary.bind(this),this.keywordDensity=this.keywordDensity.bind(this),this.removeTests=this.removeTests.bind(this),this.researchesTests=rankMath.assessor.researchesTests,this.ca_keyword=rankMath.ca_keyword.keyword,(0,c.addAction)("rank_math_loaded","rank-math",this.init),(0,c.addAction)("rank_math_keyword_refresh","rank-math",this.init),(0,c.addAction)("rank_math_content_ai_changed","rank-math",this.init))}var t,n,r;return t=e,(n=[{key:"init",value:function(e){e&&(this.ca_keyword=e),this.keyword=rankMathEditor.assessor.getPrimaryKeyword(),this.data=(0,p.select)("rank-math").getKeywordsData(),(0,o.isEmpty)(this.data)||(this.filters(),this.removeTests(),e&&rankMathEditor.refresh("content"))}},{key:"removeTests",value:function(){if(this.ca_keyword===this.keyword){var e=this.data.recommendations;rankMath.assessor.researchesTests=(0,o.filter)(rankMath.assessor.researchesTests,(function(t){return!(!e.mediaCount&&"contentHasAssets"===t||!e.linkCount.internal&&"linksHasInternal"===t||!(e.linkCount.external||"linksHasExternals"!==t&&"linksNotAllExternals"!==t))}))}else rankMath.assessor.researchesTests=this.researchesTests}},{key:"filters",value:function(){(0,c.addFilter)("rankMath_analysis_contentLength","rank-math",this.contentLength),(0,c.addFilter)("rankMath_analysis_contentLength_boundaries","rank-math",this.contentLengthBoundary),(0,c.addFilter)("rankMath_analysis_keywordDensity","rank-math",this.keywordDensity)}},{key:"contentLength",value:function(e){if(this.ca_keyword!==this.keyword)return e;var t=this.data.recommendations.wordCount,n=(0,o.ceil)(150*t/100);return{hasScore:e.hasScore,failed:(0,i.sprintf)((0,i.__)("Content is %1$s words long. Consider using at least %2$s words.","rank-math"),"%1$d",t),tooltipText:(0,i.sprintf)((0,i.__)("Minimum recommended content length should be %1$d words.","rank-math"),t),emptyContent:(0,i.sprintf)((0,i.__)("Content should be %1$s long.","rank-math"),'<a href="https://s.rankmath.com/100contentlength" target="_blank">'+t+" - "+n+(0,i.__)(" words","rank-math")+"</a>")}}},{key:"contentLengthBoundary",value:function(e){if(this.ca_keyword!==this.keyword)return e;var t=this.data.recommendations.wordCount,n=(0,o.ceil)(150*t/100);return{recommended:{boundary:n,score:8},belowRecommended:{boundary:(0,o.ceil)(n/2),score:5},low:{boundary:t,score:2}}}},{key:"keywordDensity",value:function(e,t){if((0,o.isEmpty)(this.data.keywords.content)||(0,o.isEmpty)(this.data.keywords.content[this.keyword]))return e;var n=t/this.data.keywords.content[this.keyword].average*100;return n>80?1.1:100<n?2.5:80<n?1.1:50<n?.8:.5}}])&&Fe(t.prototype,n),r&&Fe(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}(),Ue=function(){var e=a()("button-secondary rank-math-content-ai",{"is-new":!rankMath.ca_viewed});return wp.element.createElement(s.Button,{className:e,onClick:function(){return t()(".rank-math-content-ai-tab").trigger("click")}},wp.element.createElement("i",{className:"rm-icon rm-icon-target"}),(0,i.__)("Content AI","rank-math"))};(0,c.addFilter)("rankMath.analytics.contentAI","rank-math",(function(){return Ue})),(0,c.addAction)("rank_math_loaded","rank-math",(function(){(0,c.addFilter)("rank_math_sidebar_tabs","rank-math",(function(e){return e.push({name:"contentAI",title:wp.element.createElement(l.Fragment,null,wp.element.createElement("i",{className:"rm-icon rm-icon-target"}),wp.element.createElement("span",null,(0,i.__)("Content AI","rank-math"))),view:Ke,className:"rank-math-content-ai-tab hidden is-active"}),e}));var e=document.getElementById("cmb2-metabox-rank_math_metabox_content_ai");e&&setTimeout((function(){(0,l.render)((0,l.createElement)(Ke),e)}),1e3),"gutenberg"===rankMath.currentEditor&&(0,u.registerPlugin)("rank-math-content-ai-box",{render:function(){var e=(0,p.select)("rank-math").getContentAIScore();return!(!(0,o.isEmpty)(e)||!(0,o.isEmpty)(rankMath.ca_keyword))&&wp.element.createElement(m.PluginPrePublishPanel,{title:(0,i.__)("Content AI","rank-math"),icon:"rm-icon rm-icon-target",initialOpen:"true",className:"rank-math-content-ai-box"},wp.element.createElement("p",null,(0,i.__)("Improve your content with a personal Content AI.","rank-math")),wp.element.createElement(s.Button,{className:"button-primary",onClick:function(){t()(".editor-post-publish-panel__header-cancel-button button").trigger("click"),t()(".rank-math-toolbar-score").parent().hasClass("is-pressed")||t()(".rank-math-toolbar-score").trigger("click"),setTimeout((function(){t()(".rank-math-content-ai-tab").trigger("click")}),100)}},(0,i.__)("Improve Now","rank-math")))}}),"classic"!==rankMath.currentEditor&&t()(document).on("click",".rank-math-open-contentai",(function(e){return e.preventDefault(),t()(".rank-math-content-ai-tab").trigger("click"),!1})),new Le}))}()}();
1
+ !function(){var e={184:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function a(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var o=typeof n;if("string"===o||"number"===o)e.push(n);else if(Array.isArray(n)){if(n.length){var i=a.apply(null,n);i&&e.push(i)}}else if("object"===o){if(n.toString!==Object.prototype.toString&&!n.toString.toString().includes("[native code]")){e.push(n.toString());continue}for(var c in n)r.call(n,c)&&n[c]&&e.push(c)}}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(n=function(){return a}.apply(t,[]))||(e.exports=n)}()}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,n),o.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){"use strict";var e=jQuery,t=n.n(e),r=n(184),a=n.n(r),o=lodash,i=wp.i18n,c=wp.hooks,s=wp.components,l=wp.element,u=wp.plugins,m=wp.editPost,p=wp.data,h=wp.compose,f=wp.apiFetch,d=n.n(f);function y(e){return y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},y(e)}function k(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function w(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function b(e,t){return b=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},b(e,t)}function v(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=E(e);if(t){var a=E(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return g(this,n)}}function g(e,t){if(t&&("object"===y(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _(e)}function _(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function E(e){return E=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},E(e)}var C=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&b(e,t)}(c,e);var t,n,r,a=v(c);function c(){var e;return k(this,c),(e=a.apply(this,arguments)).state={score:0},e.setState=e.setState.bind(_(e)),e}return t=c,(n=[{key:"render",value:function(){var e=this;return setTimeout((function(){e.setState({score:e.props.score})}),1e3),wp.element.createElement("div",{className:"rank-math-ca-score"},wp.element.createElement("div",{className:"score-text"},(0,i.__)("Score:","rank-math")," ",this.state.score,wp.element.createElement("span",null," / ",(0,i.__)("100","rank-math"))),wp.element.createElement("div",{className:"score-wrapper"},wp.element.createElement("span",{className:"score-dot",style:{left:((0,o.inRange)(this.state.score,0,5)?5:this.state.score)+"%"}})))}}])&&w(t.prototype,n),r&&w(t,r),Object.defineProperty(t,"prototype",{writable:!1}),c}(l.Component),S=(0,h.compose)((0,p.withSelect)((function(e){var t=Object.values(e("rank-math").getContentAIScore());return{score:(0,o.round)((0,o.sum)(t)/t.length)}})))(C);function O(e){return 100<e?"bad-fk dark":80<e?"good-fk":50<e?"ok-fk":"bad-fk"}function N(e){return N="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},N(e)}function j(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function P(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function R(e,t){return R=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},R(e,t)}function T(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=I(e);if(t){var a=I(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return A(this,n)}}function A(e,t){if(t&&("object"===N(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return x(e)}function x(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function I(e){return I=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},I(e)}var D=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&R(e,t)}(s,e);var t,n,r,c=T(s);function s(){var e;return j(this,s),(e=c.apply(this,arguments)).state={activeTab:""},e.setState=e.setState.bind(x(e)),e}return t=s,n=[{key:"render",value:function(){return wp.element.createElement("div",{className:"rank-math-ca-recommendations"},this.getRecommendations(this.props.recommendations))}},{key:"getRecommendations",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=[];return(0,o.forEach)(e,(function(e,c){if("total"!==c){var s=(0,o.isUndefined)(e.total)?e:e.total,l=t.getPostStats(c),u=a()(c,{"has-children":!(0,o.isUndefined)(e.total),show:c===t.state.activeTab}),m=t.getScore(c,l,s,n),p=(0,o.ceil)(150*s/100);r.push(wp.element.createElement("div",{className:u+" "+O(m),onClick:function(){return t.setState({activeTab:t.state.activeTab!==c?c:""})},role:"presentation"},wp.element.createElement("h4",null,n?c:(0,o.startCase)(c)),n&&wp.element.createElement("span",null,l," / ",s),!n&&wp.element.createElement(React.Fragment,null,wp.element.createElement("strong",null,l),wp.element.createElement("span",{className:"desc"},(0,i.__)("Use","rank-math")," ",s," ",(0,i.__)("to","rank-math")," ",p)),(0,o.isObject)(e)&&t.getRecommendations(e,!0)))}})),n?wp.element.createElement("div",{className:"submenu"},r):r}},{key:"getPostStats",value:function(e){return(0,o.has)(this.props.postStats,e)?this.props.postStats[e]:0}},{key:"getScore",value:function(e,t,n,r){var a=t===n?100:t/n*100;if(0===n&&t<=2&&(a=100),r)return a>100&&a<=125?100:a;var o=a>80?100:t/n*80;return a>125&&"wordCount"!==e&&(o=0),this.props.updateAiScore(e,o),a>100&&"wordCount"===e||a>100&&a<=125?100:a}}],n&&P(t.prototype,n),r&&P(t,r),Object.defineProperty(t,"prototype",{writable:!1}),s}(l.Component),M=(0,h.compose)((0,p.withSelect)((function(e,t){var n=1518,r=12,a=2,i=5,c=3,s=0,l=0,u=0,m=8,p=19;if(t.hasCredits){var h=t.researcher.getResearch("wordCount"),f=rankMathEditor.assessor.analyzer.defaultAnalyses.contentHasAssets;n=h(t.content),r=(0,o.isUndefined)(f)?0:f.getImages(t.researcher.paper,t.content),a=(0,o.isUndefined)(f)?0:f.getVideos(t.content),i=(t.content.match(/<h2\b[^>]*>(.*?)<\/h2>/g)||[]).length,c=(t.content.match(/<h3\b[^>]*>(.*?)<\/h3>/g)||[]).length,s=(t.content.match(/<h4\b[^>]*>(.*?)<\/h4>/g)||[]).length,l=(t.content.match(/<h5\b[^>]*>(.*?)<\/h5>/g)||[]).length,u=(t.content.match(/<h6\b[^>]*>(.*?)<\/h6>/g)||[]).length;var d=t.researcher.getResearch("getLinkStats")(t.content);m=d.internalTotal,p=d.externalTotal}return{postStats:{wordCount:n,images:r,videos:a,mediaCount:r+a,h2:i,h3:c,h4:s,h5:l,h6:u,headingCount:i+c+s+l+u,internal:m,external:p,linkCount:m+p}}})))(D);function B(e){return B="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},B(e)}var K=["tabId","onClick","children","selected"];function F(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function L(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function U(e,t){return U=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},U(e,t)}function q(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=z(e);if(t){var a=z(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return $(this,n)}}function $(e,t){if(t&&("object"===B(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return H(e)}function H(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function z(e){return z=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},z(e)}function W(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Q(){return Q=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Q.apply(this,arguments)}function V(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var J=function(e){var t=e.tabId,n=e.onClick,r=e.children,a=e.selected,o=V(e,K);return wp.element.createElement(s.Button,Q({role:"tab",tabIndex:a?null:-1,"aria-selected":a,id:t,onClick:n},o),r)},Y=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&U(e,t)}(c,e);var t,n,r,i=q(c);function c(){var e;F(this,c),W(H(e=i.apply(this,arguments)),"handleClick",(function(t){var n=e.props.onSelect,r=void 0===n?o.noop:n;e.setState({selected:t}),r(t)})),W(H(e),"onNavigate",(function(e,t){t.click()}));var t=e.props,n=t.tabs,r=t.initialTabName;return e.state={selected:r||(n.length>0?n[0].name:null)},e}return t=c,(n=[{key:"render",value:function(){var e=this,t=this.state.selected,n=this.props,r=n.activeClass,i=void 0===r?"is-active":r,c=n.className,l=n.instanceId,u=n.orientation,m=void 0===u?"horizontal":u,p=n.tabs,h=(0,o.find)(p,{name:t}),f=l+"-"+h.name,d=p.slice(4);return wp.element.createElement("div",{className:c},wp.element.createElement(s.NavigableMenu,{role:"tablist",orientation:m,onNavigate:this.onNavigate,className:"components-tab-panel__tabs "+t},p.slice(0,4).map((function(n){return wp.element.createElement(J,{className:a()("components-tab-panel__tabs-item",n.className,W({},i,n.name===t)),tabId:l+"-"+n.name,"aria-controls":l+"-"+n.name+"-view",selected:n.name===t,key:n.name,onClick:(0,o.partial)(e.handleClick,n.name)},n.title)})),d.map((function(n){return wp.element.createElement(J,{className:a()("components-tab-panel__tabs-item",n.className,W({},i,n.name===t)),tabId:l+"-"+n.name,"aria-controls":l+"-"+n.name+"-view",selected:n.name===t,key:n.name,onClick:(0,o.partial)(e.handleClick,n.name)},n.title)}))),h&&wp.element.createElement("div",{"aria-labelledby":f,role:"tabpanel",id:f+"-view",className:"components-tab-panel__tab-content"},this.props.children(h)))}}])&&L(t.prototype,n),r&&L(t,r),Object.defineProperty(t,"prototype",{writable:!1}),c}(l.Component),G=(0,h.withInstanceId)(Y),X=rankMathAnalyzer;function Z(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=rankMath.links[e]||"";if(!n)return"#";if(!t)return n;var r={utm_source:"Plugin",utm_medium:encodeURIComponent(t),utm_campaign:"WP"};return n+"?"+Object.keys(r).map((function(e){return"".concat(e,"=").concat(r[e])})).join("&")}function ee(e){return ee="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ee(e)}function te(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ne(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function re(e,t){return re=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},re(e,t)}function ae(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=ce(e);if(t){var a=ce(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return oe(this,n)}}function oe(e,t){if(t&&("object"===ee(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return ie(e)}function ie(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ce(e){return ce=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},ce(e)}var se=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&re(e,t)}(u,e);var t,n,r,c=ae(u);function u(){var e;return te(this,u),(e=c.apply(this,arguments)).state={type:"content",selected:""},e.setState=e.setState.bind(ie(e)),e.initializeClipboard(e.setState),e}return t=u,n=[{key:"initializeClipboard",value:function(e){"function"==typeof ClipboardJS&&this.props.hasCredits&&new ClipboardJS(".rank-math-tooltip strong",{text:function(e){return e.getAttribute("data-key")}}).on("success",(function(){setTimeout((function(){e({selected:""})}),3e3)}))}},{key:"render",value:function(){var e=this;return wp.element.createElement(l.Fragment,null,wp.element.createElement(s.PanelBody,{initialOpen:!0},wp.element.createElement(s.SelectControl,{label:(0,i.__)("Use Keyword in","rank-math"),value:this.state.type,options:[{value:"content",label:(0,i.__)("Content","rank-math")},{value:"heading",label:(0,i.__)("Headings","rank-math")},{value:"title",label:(0,i.__)("SEO Title","rank-math")},{value:"description",label:(0,i.__)("SEO Description","rank-math")}],onChange:function(t){e.setState({type:t})}}),wp.element.createElement("a",{href:Z("content-ai-keywords","Sidebar Keywords KB Icon"),rel:"noreferrer",target:"_blank",id:"rank-math-help-icon",title:(0,i.__)("Know more about Keywords.","rank-math")},"﹖"),wp.element.createElement(React.Fragment,null,wp.element.createElement("span",{className:"components-form-token-field__help"},(0,i.__)("Click on any keyword to copy it.","rank-math")),wp.element.createElement("br",null),(0,o.includes)(["title","description"],this.state.type)&&wp.element.createElement("span",{className:"components-form-token-field__help"},(0,i.__)("Please use only one or two keywords from here.","rank-math")),wp.element.createElement("ul",null,this.getKeywords())),this.getRelatedKeywords()))}},{key:"getRelatedKeywords",value:function(){var e=this;if("content"!==this.state.type||(0,o.isEmpty)(this.props.caData.data.related_keywords))return!1;var t=[];return(0,o.forEach)(this.props.caData.data.related_keywords,(function(n){t.push(wp.element.createElement("li",{className:"rank-math-tooltip show",onClick:function(){return e.setState({selected:n})},role:"presentation"},wp.element.createElement("strong",{"data-key":n},n),e.getTooltipContent({keyword:n},!0)))})),wp.element.createElement("div",{className:"rank-math-related-keywords"},wp.element.createElement("h3",null,(0,i.__)("Related Keywords","rank-math")),wp.element.createElement("ul",null,t))}},{key:"getKeywords",value:function(){var e=this;if((0,o.isEmpty)(this.props.caData.data.keywords))return wp.element.createElement("h3",{className:"no-data"},(0,i.__)("There are no recommended Keywords for this researched keyword.","rank-math"));var t=[];return this.contentAiScore={},(0,o.forEach)(this.props.caData.data.keywords,(function(n,r){(0,o.isEmpty)(n)||(e.contentAiScore[r]={},(0,o.forEach)(n,(function(n){var o=e.props.hasCredits?e.getCount(n.keyword,r):n.count,i=O(e.getScore(n.keyword,o,n.average,r)),c=a()("rank-math-tooltip",{show:e.state.type===r});t.push(wp.element.createElement("li",{className:c+" "+i,onClick:function(){return e.setState({selected:n.keyword})},role:"presentation"},wp.element.createElement("strong",{"data-key":n.keyword},n.keyword,wp.element.createElement("span",null,o," / ",n.average)),e.getTooltipContent(n)))})))})),this.updateContentAiScore(),t}},{key:"updateContentAiScore",value:function(){var e=0,t=0;(0,o.forEach)(this.contentAiScore,(function(n,r){var a=Object.values(n),i=(0,o.sum)(a);"title"!==r&&"description"!==r||100!==(0,o.max)(a)||(i=100*a.length),e+=i,t+=a.length})),e/=t,(0,o.isNaN)(e)||this.props.updateAiScore("keywords",e)}},{key:"getScore",value:function(e,t,n,r){var a=t/n*100;return this.contentAiScore[r][e]=a>100?0:a>80?100:a,a}},{key:"getTooltipContent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.props.hasCredits)return this.state.selected===e.keyword?wp.element.createElement("span",{className:"rank-math-tooltip-data"},(0,i.__)("Copied","rank-math")):e.competition||e.cpc||e.search_volume?wp.element.createElement("span",{className:"rank-math-tooltip-data"},wp.element.createElement("span",null,(0,i.__)("Ad Competition:","rank-math")," ",(0,o.round)(100*e.competition)),wp.element.createElement("span",null,(0,i.__)("CPC:","rank-math")," $",(0,o.round)(e.cpc,2)),wp.element.createElement("span",null,(0,i.__)("Volume:","rank-math")," ",(0,o.round)(e.search_volume))):wp.element.createElement("span",{className:"rank-math-tooltip-data"},t?(0,i.__)("Click to copy keyword","rank-math"):(0,i.__)("No data available","rank-math"))}},{key:"getCount",value:function(e,t){var n=this.props.caData.content;if(e=X.Helpers.removeDiacritics(e).toLowerCase(),"heading"===t){e=e.replace(/[\\^$*+?.()|[\]{}]/g,"\\$&");var r=new RegExp("<h[2-6][^>]*>.*?"+e+".*?</h[2-6]>","g"),a=n.match(r);return(0,o.isNull)(a)?0:a.length}return"title"===t&&(n=this.props.caData.title),"description"===t&&(n=this.props.caData.description),X.Helpers.cleanTagsOnly(n).split(e).length-1}}],n&&ne(t.prototype,n),r&&ne(t,r),Object.defineProperty(t,"prototype",{writable:!1}),u}(l.Component),le=(0,h.compose)((0,p.withDispatch)((function(e){return{toggleEditor:function(){e("rank-math").toggleSnippetEditor(!0)}}})))(se),ue=function(){return!((0,o.isNil)(window.wp)||(0,o.isNil)(wp.data)||(0,o.isNil)(wp.data.select("core/editor"))||!window.document.body.classList.contains("block-editor-page")||!(0,o.isFunction)(wp.data.select("core/editor").getEditedPostAttribute))};function me(e){return me="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},me(e)}function pe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function he(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function fe(e,t){return fe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},fe(e,t)}function de(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=we(e);if(t){var a=we(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return ye(this,n)}}function ye(e,t){if(t&&("object"===me(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return ke(e)}function ke(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function we(e){return we=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},we(e)}var be=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&fe(e,t)}(c,e);var t,n,r,a=de(c);function c(){var e;return pe(this,c),(e=a.apply(this,arguments)).state={iconClass:"rm-icon-copy",selected:""},e.setState=e.setState.bind(ke(e)),e.initializeClipboard(e.setState),e}return t=c,(n=[{key:"initializeClipboard",value:function(e){var t=this;"function"==typeof ClipboardJS&&new ClipboardJS(".rank-math-copy-questions, .rank-math-questions-item h3",{text:function(e){if(!(0,o.isNull)(e.getAttribute("data-key")))return e.getAttribute("data-key");if(!ue())return document.getElementById("rank-math-ca-questions-data").innerHTML;var n=[];return(0,o.forEach)(t.props.caData.data.related_questions,(function(e){n.push({id:(0,o.uniqueId)("faq-question-"),title:e,content:"",visible:!0})})),"\x3c!-- wp:rank-math/faq-block "+JSON.stringify({questions:n})+' --\x3e<div class="wp-block-rank-math-faq-block"></div>\x3c!-- /wp:rank-math/faq-block --\x3e'}}).on("success",(function(){setTimeout((function(){e({iconClass:"rm-icon-copy"})}),3e3)}))}},{key:"render",value:function(){var e=this,t=[];return(0,o.isEmpty)(this.props.caData.data.related_questions)?wp.element.createElement("h3",{className:"no-data"},(0,i.__)("There are no recommended Questions for this researched keyword.","rank-math")):((0,o.forEach)(this.props.caData.data.related_questions,(function(n){t.push(wp.element.createElement("div",{className:"rank-math-questions-item"},wp.element.createElement("h3",{className:"rank-math-tooltip","data-key":n,onClick:function(){return e.setState({selected:n})},role:"presentation"},n,e.getTooltipContent(n))))})),wp.element.createElement(l.Fragment,null,wp.element.createElement(s.PanelBody,{initialOpen:!0},wp.element.createElement("div",{className:"rank-math-section-heading"},wp.element.createElement("h2",null,(0,i.__)("Related Questions","rank-math"),wp.element.createElement("a",{href:Z("content-ai-settings","Sidebar Questions KB Icon"),rel:"noreferrer",target:"_blank",id:"rank-math-help-icon",title:(0,i.__)("Know more about Questions.","rank-math")},"﹖")),wp.element.createElement(s.Button,{onClick:function(){e.setState({iconClass:"rm-icon-tick"})},className:"rank-math-copy-questions button-secondary rank-math-tooltip left"},wp.element.createElement("i",{className:"rm-icon "+this.state.iconClass}),wp.element.createElement("span",null,(0,i.__)("Copy this data as a FAQ Block.","rank-math")))),wp.element.createElement("span",{className:"components-form-token-field__help"},(0,i.__)("Click on any question to copy it.","rank-math")),wp.element.createElement("div",{id:"rank-math-ca-questions-data"},t))))}},{key:"getTooltipContent",value:function(e){return this.state.selected===e&&wp.element.createElement("span",{className:"rank-math-tooltip-data"},(0,i.__)("Copied","rank-math"))}}])&&he(t.prototype,n),r&&he(t,r),Object.defineProperty(t,"prototype",{writable:!1}),c}(l.Component),ve=be,ge=function(e){var t=[];return(0,o.isEmpty)(e.caData.data.links)?wp.element.createElement("h3",{className:"no-data"},(0,i.__)("There are no recommended Links for this researched keyword.","rank-math")):((0,o.forEach)(e.caData.data.links,(function(e){return t.push(wp.element.createElement("li",null,wp.element.createElement("a",{href:e,rel:"noreferrer",target:"_blank"},e)))})),wp.element.createElement(l.Fragment,null,wp.element.createElement(s.PanelBody,{initialOpen:!0},wp.element.createElement("div",{className:"rank-math-section-heading"},wp.element.createElement("h2",null,(0,i.__)("Related External Links","rank-math"),wp.element.createElement("a",{href:Z("content-ai-links","Sidebar Links KB Icon"),rel:"noreferrer",target:"_blank",id:"rank-math-help-icon",title:(0,i.__)("Know more about Links.","rank-math")},"﹖")),wp.element.createElement("p",null,(0,i.__)("Use some of these external links in the content area. It is recommended to add","rank-math")," ",wp.element.createElement("a",{href:Z("about-and-mentions-schema","Use Some External Links"),rel:"noreferrer",target:"_blank"},(0,i.__)("about or mention Schema.","rank-math")))),wp.element.createElement("ul",null,t))))},_e=function(e){"social"===e&&(0,p.dispatch)("rank-math").toggleSnippetEditor(!0)},Ee=function(e){return wp.element.createElement(G,{className:"rank-math-contentai-tabs",activeClass:"is-active",tabs:[{name:"keywords",title:wp.element.createElement(l.Fragment,null,wp.element.createElement("span",null,(0,i.__)("Keywords","rank-math"))),view:le,className:"rank-math-keywords-tab"},{name:"questions",title:wp.element.createElement(l.Fragment,null,wp.element.createElement("span",null,(0,i.__)("Questions","rank-math"))),view:ve,className:"rank-math-questions-tab"},{name:"links",title:wp.element.createElement(l.Fragment,null,wp.element.createElement("span",null,(0,i.__)("Links","rank-math"))),view:ge,className:"rank-math-recommended-links-tab"}],onSelect:_e,data:e},(function(t){return wp.element.createElement("div",{className:"rank-math-contentai-tab-content-"+t.name},(0,l.createElement)(t.view,e))}))},Ce=React;function Se(e){return e.startsWith("{{/")?{type:"componentClose",value:e.replace(/\W/g,"")}:e.endsWith("/}}")?{type:"componentSelfClosing",value:e.replace(/\W/g,"")}:e.startsWith("{{")?{type:"componentOpen",value:e.replace(/\W/g,"")}:{type:"string",value:e}}function Oe(e,t){let n,r,a=[];for(let o=0;o<e.length;o++){const i=e[o];if("string"!==i.type){if(void 0===t[i.value])throw new Error(`Invalid interpolation, missing component node: \`${i.value}\``);if("object"!=typeof t[i.value])throw new Error(`Invalid interpolation, component node must be a ReactElement or null: \`${i.value}\``);if("componentClose"===i.type)throw new Error(`Missing opening component token: \`${i.value}\``);if("componentOpen"===i.type){n=t[i.value],r=o;break}a.push(t[i.value])}else a.push(i.value)}if(n){const o=function(e,t){const n=t[e];let r=0;for(let a=e+1;a<t.length;a++){const e=t[a];if(e.value===n.value){if("componentOpen"===e.type){r++;continue}if("componentClose"===e.type){if(0===r)return a;r--}}}throw new Error("Missing closing component token `"+n.value+"`")}(r,e),i=Oe(e.slice(r+1,o),t),c=(0,Ce.cloneElement)(n,{},i);if(a.push(c),o<e.length-1){const n=Oe(e.slice(o+1),t);a=a.concat(n)}}return a=a.filter(Boolean),0===a.length?null:1===a.length?a[0]:(0,Ce.createElement)(Ce.Fragment,null,...a)}function Ne(e){const{mixedString:t,components:n,throwErrors:r}=e;if(!n)return t;if("object"!=typeof n){if(r)throw new Error(`Interpolation Error: unable to process \`${t}\` because components is not an object`);return t}const a=function(e){return e.split(/(\{\{\/?\s*\w+\s*\/?\}\})/g).map(Se)}(t);try{return Oe(a,n)}catch(e){if(r)throw new Error(`Interpolation Error: unable to process \`${t}\` because of error \`${e.message}\``);return t}}var je=function(e){var t=e.tags,n=e.components,r=e.children;return n=n||{},!1===(0,o.isUndefined)(t)&&(t=t.split(",")).forEach((function(e){var t=e;n[e]=wp.element.createElement(t,null)})),Ne({mixedString:r,components:n})};function Pe(e){return Pe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Pe(e)}function Re(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Te(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Ae(e,t){return Ae=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Ae(e,t)}function xe(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Me(e);if(t){var a=Me(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return Ie(this,n)}}function Ie(e,t){if(t&&("object"===Pe(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return De(e)}function De(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Me(e){return Me=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Me(e)}var Be=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ae(e,t)}(m,e);var n,r,c,u=xe(m);function m(){var e;return Re(this,m),(e=u.apply(this,arguments)).state={keyword:e.props.keyword,showResearch:e.props.keyword!==rankMath.ca_keyword.keyword,country:e.props.country,credits:1,creditsValue:rankMath.ca_credits,loading:!1,loadingCredits:!1},e.setState=e.setState.bind(De(e)),e}return n=m,(r=[{key:"componentDidMount",value:function(){!this.state.creditsValue&&rankMath.isUserRegistered&&this.updateCredits()}},{key:"updateCredits",value:function(){var e=this;this.setState({loadingCredits:!0}),d()({method:"POST",path:"/rankmath/v1/ca/getCredits"}).catch((function(t){e.setState({loadingCredits:!1}),alert(t.message)})).then((function(t){e.setState({creditsValue:t}),e.setState({loadingCredits:!1})}))}},{key:"render",value:function(){var e=rankMath.isUserRegistered&&(0,o.isNumber)(this.state.credits),t=a()("rank-math-content-ai-data",{loading:this.state.loading,blurred:!e}),n=this.props.data;return(!e&&(0,o.isEmpty)(n)||"show_dummy_data"===n)&&(n=this.getDummyData()),wp.element.createElement(l.Fragment,null,wp.element.createElement(s.PanelBody,{className:"rank-math-content-ai-wrapper",initialOpen:!0},wp.element.createElement(React.Fragment,null,this.getHeader(),!rankMath.isUserRegistered&&this.connectAccountNotice(),rankMath.isUserRegistered&&!e&&this.creditsNotice(e),e&&this.keywordField(),wp.element.createElement("div",{className:t},wp.element.createElement("span",{className:"loader-text"},wp.element.createElement("span",null,(0,i.__)("Fetching Search Results","rank-math")),wp.element.createElement("span",null,(0,i.__)("Analysing Your Competitors","rank-math")),wp.element.createElement("span",null,(0,i.__)("Crunching the Numbers","rank-math")),wp.element.createElement("span",null,(0,i.__)("Cooking a Personalized SEO Plan","rank-math")),wp.element.createElement("span",null,(0,i.__)("Final Touches to the SEO Recommendations","rank-math"))),(0,o.isString)(n)&&wp.element.createElement("h3",{className:"no-data"},n),!(0,o.isEmpty)(n)&&!(0,o.isString)(n)&&wp.element.createElement("div",null,wp.element.createElement("h3",{className:"rank-math-ca-section-title"},(0,i.__)("Content AI","rank-math"),wp.element.createElement("span",null,(0,i.__)("New!","rank-math")),wp.element.createElement("a",{href:Z("content-ai-settings","Sidebar KB Icon"),rel:"noreferrer",target:"_blank",id:"rank-math-help-icon",title:(0,i.__)("Content AI Knowledge Base.","rank-math")},"﹖")),wp.element.createElement(S,null),wp.element.createElement(M,{recommendations:n.recommendations,hasCredits:e,content:this.props.content,researcher:this.props.researcher,updateAiScore:this.props.updateAiScore,hasThumbnail:this.props.hasThumbnail}),wp.element.createElement(Ee,{caData:this.props,updateAiScore:this.props.updateAiScore,hasCredits:e}))))))}},{key:"getDummyData",value:function(){return{keywords:{content:{"rank math":{keyword:"rank math",average:17,count:12},"rank math vs yoast seo":{keyword:"rank math vs yoast seo",average:1,count:1},"what is rank math":{keyword:"what is rank math",average:1,count:1},"rank math schema":{keyword:"rank math schema",average:1,count:1},"rank math configuration":{keyword:"rank math configuration",average:1,count:1},"rank math pro version":{keyword:"rank math pro version",average:1,count:2},"rank math comparison":{keyword:"rank math comparison",average:1,count:1},"rank math for seo":{keyword:"rank math for seo",average:1,count:1},"seo by rank math":{keyword:"seo by rank math",average:1,count:0}}},related_keywords:["rank math plugin","rank math pricing","rank math vs yoast","rank math review","rank math premium","how to use rank math","rank math training","rank math woocommerce","wordpress seo plugin"],recommendations:{wordCount:1829,linkCount:{total:16},headingCount:{total:9},mediaCount:{total:18}}}}},{key:"getHeader",value:function(){var e=this;return wp.element.createElement("div",{className:"rank-math-ca-top-section"},wp.element.createElement(s.Button,{onClick:function(){return t()(".rank-math-general-tab").trigger("click")}},wp.element.createElement("i",{className:"dashicons dashicons-arrow-left-alt"}),(0,i.__)("Back","rank-math")),wp.element.createElement(s.SelectControl,{value:this.state.country,onChange:function(t){return e.setState({country:t,showResearch:!0})},options:rankMath.countries}))}},{key:"keywordField",value:function(){var e=this,t=a()("rank-math-tooltip update-credits",{loading:this.state.loadingCredits});return wp.element.createElement("div",{className:"rank-math-ca-keywords-wrapper"},wp.element.createElement("div",{className:"rank-math-ca-credits-wrapper"},wp.element.createElement(s.TextControl,{label:(0,i.__)("Focus Keyword","rank-math"),value:this.state.keyword,onChange:function(t){return e.setState({keyword:t,showResearch:!0})},onKeyDown:function(e){"Enter"===e.key&&e.preventDefault()},help:wp.element.createElement(React.Fragment,null,(0,i.__)("Upgrade to buy more credits from ","rank-math"),wp.element.createElement("a",{href:Z("content-ai-pricing-tables","Sidebar Upgrade Text"),rel:"noreferrer",target:"_blank",title:(0,i.__)("Content AI Pricing.","rank-math")},(0,i.__)("here.","rank-math"))),placeholder:(0,i.__)("Suggested length 2-3 Words","rank-math")}),wp.element.createElement("div",{className:"help-text"},(0,i.__)("To learn how to use it","rank-math")," ",wp.element.createElement("a",{href:Z("content-ai-settings","Content AI Sidebar KB Link"),target:"_blank",rel:"noreferrer"},(0,i.__)("Click here","rank-math"))),!this.state.showResearch&&!this.state.loading&&!(0,o.isEmpty)(this.props.data)&&wp.element.createElement(s.Button,{className:"rank-math-ca-force-update rank-math-tooltip left",onClick:function(){return e.props.researchKeyword(e.state,e.setState,!0)}},wp.element.createElement("i",{className:"dashicons dashicons-image-rotate"}),wp.element.createElement("span",null,(0,i.__)("Refresh will use one new credit.","rank-math"))),wp.element.createElement("div",{className:"rank-math-ca-credits"},wp.element.createElement(s.Button,{className:t,onClick:function(){return e.updateCredits()}},wp.element.createElement("i",{className:"dashicons dashicons-image-rotate"}),wp.element.createElement("span",null,(0,i.__)("Click to refresh the available credits.","rank-math"))),wp.element.createElement("span",null,(0,i.__)("Credits","rank-math")),wp.element.createElement("a",{href:Z("content-ai-credits-usage","Sidebar Credits Tooltip Icon"),rel:"noreferrer",target:"_blank",id:"rank-math-help-icon",title:(0,i.__)("Know more about credits.","rank-math")},"﹖"),wp.element.createElement("strong",null,this.state.creditsValue))),this.state.showResearch&&wp.element.createElement(s.Button,{className:"is-primary",onClick:function(){return e.props.researchKeyword(e.state,e.setState)},title:(0,i.__)("One credit will be used.","rank-math"),disabled:!this.state.keyword},(0,i.__)("Research","rank-math")))}},{key:"connectAccountNotice",value:function(){return wp.element.createElement("div",{className:"rank-math-ca-warning"},wp.element.createElement("h3",null,(0,i.__)("Content AI","rank-math")),wp.element.createElement("p",null,(0,i.__)("Please connect your account to use this feature.","rank-math")),wp.element.createElement(s.Button,{href:rankMath.connectSiteUrl,className:"is-primary"},(0,i.__)("Connect Now","rank-math")))}},{key:"creditsNotice",value:function(){return wp.element.createElement("div",{className:"rank-math-ca-warning"},wp.element.createElement("h3",null,(0,i.__)("Content AI","rank-math")),"site_limit_reached"===this.state.credits&&wp.element.createElement("p",null,wp.element.createElement(je,{components:{link1:wp.element.createElement("a",{href:Z("free-account","Sidebar No Credits"),target:"_blank",rel:"noopener noreferrer"}),link2:wp.element.createElement("a",{href:Z("content-ai-pricing-tables","Sidebar No Credits"),target:"_blank",rel:"noopener noreferrer"})}},(0,i.__)("All credits assigned to this site are used. Please add more credits from {{link1}}My Account{{/link1}} Page or {{link2}}upgrade your plan{{/link2}}.","rank-math"))),"account_limit_reached"===this.state.credits&&wp.element.createElement(React.Fragment,null,wp.element.createElement("p",null,(0,i.__)("You don't have any credits left.","rank-math")),wp.element.createElement(s.Button,{href:Z("content-ai-pricing-tables","Sidebar No Credits"),target:"_blank",rel:"noreferrer",className:"is-primary"},(0,i.__)("Get More Credits","rank-math"))))}}])&&Te(n.prototype,r),c&&Te(n,c),Object.defineProperty(n,"prototype",{writable:!1}),m}(l.Component),Ke=(0,h.compose)((0,p.withSelect)((function(e){var t=rankMathEditor.assessor.analyzer.researcher,n=t.paper;return{data:e("rank-math").getKeywordsData(),keyword:(0,o.get)(rankMath.ca_keyword,"keyword",e("rank-math").getKeywords().split(",")[0]),country:(0,o.get)(rankMath.ca_keyword,"country",rankMath.contentAiCountry),researcher:t,content:(0,o.isUndefined)(n)?"":n.getTextLower(),title:(0,o.isUndefined)(n)?"":n.getTitle().toLowerCase(),description:(0,o.isUndefined)(n)?"":n.getDescription().toLowerCase(),hasThumbnail:(0,o.isUndefined)(n)?"":n.hasThumbnail(),score:e("rank-math").getContentAIScore()}})),(0,p.withDispatch)((function(e,t){return{researchKeyword:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t.force_update=r,t.objectID=rankMath.objectID,t.objectType=rankMath.objectType,n({showResearch:!1,loading:!0}),d()({method:"POST",path:"/rankmath/v1/ca/researchKeyword",data:t}).catch((function(e){n({loading:!1,showResearch:!0}),alert(e.message)})).then((function(t){n({loading:!1}),e("rank-math").updateKeywordsData(t.data),(0,o.isNull)(t.credits)||(0,o.isUndefined)(t.credits)||n({credits:t.credits,creditsValue:(0,o.isNumber)(t.credits)?t.credits:0}),(0,c.doAction)("rank_math_content_ai_changed",t.keyword)}))},updateAiScore:function(n,r){var a=t.score;a[n]=(0,o.round)(r,2),e("rank-math").updateAIScore(a)}}})))(Be);function Fe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var Le=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),rankMath.isUserRegistered&&(this.init=this.init.bind(this),this.contentLength=this.contentLength.bind(this),this.contentLengthBoundary=this.contentLengthBoundary.bind(this),this.keywordDensity=this.keywordDensity.bind(this),this.removeTests=this.removeTests.bind(this),this.researchesTests=rankMath.assessor.researchesTests,this.ca_keyword=rankMath.ca_keyword.keyword,(0,c.addAction)("rank_math_loaded","rank-math",this.init),(0,c.addAction)("rank_math_keyword_refresh","rank-math",this.init),(0,c.addAction)("rank_math_content_ai_changed","rank-math",this.init))}var t,n,r;return t=e,(n=[{key:"init",value:function(e){e&&(this.ca_keyword=e),this.keyword=rankMathEditor.assessor.getPrimaryKeyword(),this.data=(0,p.select)("rank-math").getKeywordsData(),(0,o.isEmpty)(this.data)||(this.filters(),this.removeTests(),e&&rankMathEditor.refresh("content"))}},{key:"removeTests",value:function(){if(this.ca_keyword===this.keyword){var e=this.data.recommendations;rankMath.assessor.researchesTests=(0,o.filter)(rankMath.assessor.researchesTests,(function(t){return!(!e.mediaCount&&"contentHasAssets"===t||!e.linkCount.internal&&"linksHasInternal"===t||!(e.linkCount.external||"linksHasExternals"!==t&&"linksNotAllExternals"!==t))}))}else rankMath.assessor.researchesTests=this.researchesTests}},{key:"filters",value:function(){(0,c.addFilter)("rankMath_analysis_contentLength","rank-math",this.contentLength),(0,c.addFilter)("rankMath_analysis_contentLength_boundaries","rank-math",this.contentLengthBoundary),(0,c.addFilter)("rankMath_analysis_keywordDensity","rank-math",this.keywordDensity)}},{key:"contentLength",value:function(e){if(this.ca_keyword!==this.keyword)return e;var t=this.data.recommendations.wordCount,n=(0,o.ceil)(150*t/100);return{hasScore:e.hasScore,failed:(0,i.sprintf)((0,i.__)("Content is %1$s words long. Consider using at least %2$s words.","rank-math"),"%1$d",t),tooltipText:(0,i.sprintf)((0,i.__)("Minimum recommended content length should be %1$d words.","rank-math"),t),emptyContent:(0,i.sprintf)((0,i.__)("Content should be %1$s long.","rank-math"),'<a href="https://s.rankmath.com/100contentlength" target="_blank">'+t+" - "+n+(0,i.__)(" words","rank-math")+"</a>")}}},{key:"contentLengthBoundary",value:function(e){if(this.ca_keyword!==this.keyword)return e;var t=this.data.recommendations.wordCount,n=(0,o.ceil)(150*t/100);return{recommended:{boundary:n,score:8},belowRecommended:{boundary:(0,o.ceil)(n/2),score:5},low:{boundary:t,score:2}}}},{key:"keywordDensity",value:function(e,t){if((0,o.isEmpty)(this.data.keywords.content)||(0,o.isEmpty)(this.data.keywords.content[this.keyword]))return e;var n=t/this.data.keywords.content[this.keyword].average*100;return n>80?1.1:100<n?2.5:80<n?1.1:50<n?.8:.5}}])&&Fe(t.prototype,n),r&&Fe(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}(),Ue=function(){var e=a()("button-secondary rank-math-content-ai",{"is-new":!rankMath.ca_viewed});return wp.element.createElement(s.Button,{className:e,onClick:function(){return t()(".rank-math-content-ai-tab").trigger("click")}},wp.element.createElement("i",{className:"rm-icon rm-icon-target"}),(0,i.__)("Content AI","rank-math"))};(0,c.addFilter)("rankMath.analytics.contentAI","rank-math",(function(){return Ue})),(0,c.addAction)("rank_math_loaded","rank-math",(function(){(0,c.addFilter)("rank_math_sidebar_tabs","rank-math",(function(e){return e.push({name:"contentAI",title:wp.element.createElement(l.Fragment,null,wp.element.createElement("i",{className:"rm-icon rm-icon-target"}),wp.element.createElement("span",null,(0,i.__)("Content AI","rank-math"))),view:Ke,className:"rank-math-content-ai-tab hidden is-active"}),e}));var e=document.getElementById("cmb2-metabox-rank_math_metabox_content_ai");e&&setTimeout((function(){(0,l.render)((0,l.createElement)(Ke),e)}),1e3),"gutenberg"===rankMath.currentEditor&&(0,u.registerPlugin)("rank-math-content-ai-box",{render:function(){var e=(0,p.select)("rank-math").getContentAIScore();return!(!(0,o.isEmpty)(e)||!(0,o.isEmpty)(rankMath.ca_keyword))&&wp.element.createElement(m.PluginPrePublishPanel,{title:(0,i.__)("Content AI","rank-math"),icon:"rm-icon rm-icon-target",initialOpen:"true",className:"rank-math-content-ai-box"},wp.element.createElement("p",null,(0,i.__)("Improve your content with a personal Content AI.","rank-math")),wp.element.createElement(s.Button,{className:"button-primary",onClick:function(){t()(".editor-post-publish-panel__header-cancel-button button").trigger("click"),t()(".rank-math-toolbar-score").parent().hasClass("is-pressed")||t()(".rank-math-toolbar-score").trigger("click"),setTimeout((function(){t()(".rank-math-content-ai-tab").trigger("click")}),100)}},(0,i.__)("Improve Now","rank-math")))}}),"classic"!==rankMath.currentEditor&&t()(document).on("click",".rank-math-open-contentai",(function(e){return e.preventDefault(),t()(".rank-math-content-ai-tab").trigger("click"),!1})),new Le}))}()}();
languages/rank-math.pot CHANGED
@@ -8,7 +8,7 @@ msgstr ""
8
  "Content-Transfer-Encoding: 8bit\n"
9
  "Language-Team: Rank Math\n"
10
  "Last-Translator: Rank Math\n"
11
- "POT-Creation-Date: 2022-09-22 10:11+0000\n"
12
  "Project-Id-Version: undefined\n"
13
  "X-Poedit-Basepath: ..\n"
14
  "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
@@ -4661,13 +4661,13 @@ msgstr ""
4661
  msgid "Recommended: PHP 7.4 or later"
4662
  msgstr ""
4663
 
4664
- msgid "Rank Math is compatible with your PHP version but we recommend updating to PHP 7.2 for increased speed and security."
4665
  msgstr ""
4666
 
4667
  msgid "More information"
4668
  msgstr ""
4669
 
4670
- msgid "This plugin is compatible with your PHP version but we recommend updating to PHP 7.2 for increased speed and security."
4671
  msgstr ""
4672
 
4673
  msgid "You are using the recommended WordPress version."
8
  "Content-Transfer-Encoding: 8bit\n"
9
  "Language-Team: Rank Math\n"
10
  "Last-Translator: Rank Math\n"
11
+ "POT-Creation-Date: 2022-09-23 18:50+0000\n"
12
  "Project-Id-Version: undefined\n"
13
  "X-Poedit-Basepath: ..\n"
14
  "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
4661
  msgid "Recommended: PHP 7.4 or later"
4662
  msgstr ""
4663
 
4664
+ msgid "Rank Math is compatible with your PHP version but we recommend updating to PHP 7.4 for increased speed and security."
4665
  msgstr ""
4666
 
4667
  msgid "More information"
4668
  msgstr ""
4669
 
4670
+ msgid "This plugin is compatible with your PHP version but we recommend updating to PHP 7.4 for increased speed and security."
4671
  msgstr ""
4672
 
4673
  msgid "You are using the recommended WordPress version."
rank-math.php CHANGED
@@ -9,7 +9,7 @@
9
  *
10
  * @wordpress-plugin
11
  * Plugin Name: Rank Math SEO
12
- * Version: 1.0.98.1
13
  * Plugin URI: https://s.rankmath.com/home
14
  * Description: Rank Math is a revolutionary SEO product that combines the features of many SEO tools and lets you multiply your traffic in the easiest way possible.
15
  * Author: Rank Math
@@ -34,7 +34,7 @@ final class RankMath {
34
  *
35
  * @var string
36
  */
37
- public $version = '1.0.98.1';
38
 
39
  /**
40
  * Rank Math database version.
9
  *
10
  * @wordpress-plugin
11
  * Plugin Name: Rank Math SEO
12
+ * Version: 1.0.98.2
13
  * Plugin URI: https://s.rankmath.com/home
14
  * Description: Rank Math is a revolutionary SEO product that combines the features of many SEO tools and lets you multiply your traffic in the easiest way possible.
15
  * Author: Rank Math
34
  *
35
  * @var string
36
  */
37
+ public $version = '1.0.98.2';
38
 
39
  /**
40
  * Rank Math database version.
readme.txt CHANGED
@@ -1,11 +1,11 @@
1
- === Rank Math SEO – Best SEO Plugin For WordPress To Increase Your SEO Traffic ===
2
  Contributors: rankmath
3
  Plugin link: https://rankmath.com/?utm_source=LP&utm_campaign=WP
4
  Tags: seo, sitemap, google search console, schema, redirection, WordPress SEO
5
  Tested up to: 6.0
6
  Requires at least: 5.6
7
- Requires PHP: 7.2
8
- Stable tag: 1.0.98.1
9
  License: GPLv3 or later
10
  License URI: https://www.gnu.org/licenses/gpl-3.0.txt
11
 
@@ -17,16 +17,16 @@ Rank Math SEO is the Best WordPress SEO plugin combines the features of many SEO
17
  **1st WordPress SEO Plugin to use AI (Artificial Intelligence)** 🦾
18
  ★★★★★<br>
19
 
20
- **SEO is the most consistent source of traffic for any website.** We created <a href="https://rankmath.com/wordpress/plugin/seo-suite/?utm_source=LP&utm_campaign=WP" target="_blank">**Rank Math SEO, a WordPress SEO plugin**</a>, to help every website owner get access to the SEO tools they need to improve their SEO and attract more traffic to their website.
21
- ## <a href="https://demo.rankmath.com/wp-admin/admin.php?page=rank-math-wizard" target="_blank">Try The FREE Demo of Rank Math SEO</a> ##
22
 
23
  [youtube https://www.youtube.com/watch?v=NgeaqIy2OB0]
24
 
25
- <a href="https://rankmath.com/wordpress/plugin/seo-suite/?utm_source=LP&utm_campaign=WP#features" target="_blank">Features</a> | <a href="https://rankmath.com/wordpress/plugin/seo-suite/?utm_source=LP&utm_campaign=WP#reasons" target="_blank">Why Choose Rank Math SEO?</a> | <a href="https://rankmath.com/wordpress/plugin/seo-suite/?utm_source=LP&utm_campaign=WP#comparison" target="_blank">Compare</a> | <a href="https://rankmath.com/wordpress/plugin/seo-suite/?utm_source=LP&utm_campaign=WP#screenshots" target="_blank">Screenshots</a> | <a href="https://rankmath.com/wordpress/plugin/seo-suite/?utm_source=LP&utm_campaign=WP#benefits" target="_blank">Benefits</a>
26
 
27
- SEO might be the best and most **consistent source of traffic** for one's website, but it's not without its quirks. The constant process of optimizing your posts can sometimes take more time than actually writing the content. **If you always feel that you can do more on the SEO** front for your website but don't have the time, **then Rank Math SEO is what you're looking for.**
28
 
29
- Its host of **intelligent features** brings top SEO capabilities in your hands that were previously out of reach. The **smart automation** features give you the **power of an entire SEO team** with just a few clicks. A **well thought out design, powerful features, and years of development** by the MyThemeShop squad make Rank Math SEO a game-changing SEO plugin that will level the SEO playing field in your favor to help increase traffic.
30
 
31
  ### Exclusive Content AI. Write Highly Optimized SEO Content ###
32
 
@@ -42,133 +42,133 @@ Its host of **intelligent features** brings top SEO capabilities in your hands t
42
  ➜ Related Keywords
43
  ➜ Full Control via Role Manager
44
 
45
- ### Rank Math SEO beats all of its competitors, hands down. ###
46
 
47
- See the features which are exclusive to the Rank Math SEO plugin and understand why Rank Math SEO is possibly the **Best SEO Plugin for WordPress**.
48
 
49
  * **Setup Wizard (Easy to follow)**
50
- Rank Math SEO practically configures itself. Rank Math SEO features a [step-by-step installation and configuration wizard](https://rankmath.com/kb/how-to-setup/?utm_source=LP&utm_campaign=WP) that sets up SEO for WordPress perfectly.
51
 
52
  * **Google Schema Markup aka Rich Snippets Integrated**
53
- Configuring Google Schema Markup, aka Rich Snippets, is now easy, thanks to Rank Math SEO. With support for [16+ types of Schema Markups, aka Rich Snippets, including the Rating Schema,](https://rankmath.com/kb/rich-snippets/?utm_source=LP&utm_campaign=WP#schema-types-offers-by-rank-math) you'll be able to optimize your posts in just a few clicks. It also includes the [FAQ Schema aka FAQPage Schema Block](https://rankmath.com/blog/faq-schema/?utm_source=LP&utm_campaign=WP) & the [HowTo aka How To Schema Block](https://rankmath.com/blog/howto-schema/?utm_source=LP&utm_campaign=WP) in the plugin.
54
 
55
  * **Optimize Unlimited Keywords**
56
- Unlike other plugins, Rank Math SEO lets you optimize your posts for **unlimited focus keywords** per post. 5 by default. Increase by adding this [filter](https://rankmath.com/kb/filters-hooks-api-developer/#unlimited-keywords).
57
 
58
  * **Content AI**
59
  Rank Math is the FIRST & ONLY SEO plugin that uses AI to help you write content. Your personal AI Assistant for creating SEO friendly content. Our Content AI takes all the hassle out of writing. It ensures that the content you write is not only great for your visitors, but for search engines (SEO) as well. [Learn how to use Content AI for writing SEO optimized content that ranks](https://rankmath.com/kb/how-to-use-content-ai/).
60
 
61
  * **Google Search Console Integration**
62
- Rank Math SEO saves you a ton of time by integrating with Google Search Console and displaying important information about your website right inside WordPress.
63
 
64
  * **Google Keyword Ranking**
65
- With Rank Math SEO Plugin, you can track your keyword rankings in Google.
66
 
67
  * **Google Analytics Integration**
68
- Rank Math SEO offers a one-click solution to install Google Analytics script without pasting anything manually anywhere. You can also exclude the Logged-in users.
69
 
70
  * **Optimal Settings Pre-Selected**
71
- Configuring an SEO plugin takes time, and can be confusing. Rank Math SEO saves you the trouble with its optimal default settings, which are ideal for most websites, and if needed, can be changed.
72
 
73
  * **LSI Keyword Tool Integrated**
74
- Rank Math SEO's integrated LSI keyword tool gives you multiple keyword variations of your focus keyword, which helps you attract more traffic to your posts. Free account needed.
75
 
76
  * **Add Overlay Icons On Social Images**
77
- Rank Math SEO makes social thumbnails click magnets by giving you the option of overlaying a GIF or a video icon on the thumbnail.
78
 
79
  * **Advanced SEO Analysis Tool**
80
- With just a single click, Rank Math SEO can perform an SEO audit of your website.
81
 
82
  * **30 Detailed SEO Tests**
83
- Rank Math SEO is designed to completely supercharge your website's SEO with its 30 detailed SEO tests. Free account needed.
84
 
85
  * **Module Based System**
86
- Rank Math SEO has been designed with a module-based system, each of which can be enabled or disabled as per your needs, giving you extra speed and control.
87
 
88
  * **Smart Redirection Manager**
89
- Rank Math SEO's built-in smart redirection manager will help you create, manage, delete, enable, or disable redirects at scale.
90
 
91
  * **Local Business SEO**
92
- Rank Math SEO is designed to be used by Global websites and local websites alike. With its local SEO features, local sites can stand out in the search engine results like Google's and attract more traffic.
93
 
94
  * **SEO Optimized Breadcrumbs**
95
- Rank Math SEO can display SEO optimized Breadcrumbs on all websites, even if the theme doesn't support Schema.org coding.
96
 
97
  * **404 Monitor**
98
- Rank Math SEO has a built-in 404 error monitor that helps you find and resolve 404 errors for a better user experience.
99
 
100
  * **Deep Content Analysis Tests**
101
- On-Page SEO is no longer a mystery with Rank Math SEO's deep content analysis and precise SEO recommendations.
102
 
103
  * **Internal Linking Suggestions**
104
- Rank Math SEO intelligently suggests other posts from your website for internal linking from your current posts, improving the chances of ranking higher in the SERPs.
105
 
106
  * **Role Manager**
107
- Even if you have multiple employees manage your website, you can precisely control what each of them has to access to in Rank Math SEO with its role manager.
108
 
109
  * **Multisite Ready**
110
- Whether you run a single WordPress website or an entire network of sites - we are ready for you. Rank Math SEO fully supports the WordPress Multiuser project (WPMU).
111
 
112
  * **and has lightweight Code compared to slow-loading in other SEO plugins.**
113
- Even with significantly more features than other plugins, Rank Math SEO loads amazingly fast and keeps your website fast always.
114
 
115
- ### Why is Rank Math SEO such a game-changer? ###
116
 
117
- * **Auto Configuration** — All you have to do is set a few options, and Rank Math SEO will configure itself perfectly for your website.
118
 
119
- * **Super Fast SEO Plugin** — Even after packing so many features, Rank Math SEO has a negligible load on your server, thus making it one of the fastest SEO plugins for WordPress.
120
 
121
- * **Automatic Keyword Suggestions from Google** — Get keyword suggestions from Google as you start typing letters in the focus keyword field of Rank Math SEO.
122
 
123
- * **New SEO Analyzer** — Rank Math SEO's built-in SEO analysis will give you SEO recommendations that you'd normally spend hundreds of dollars to get.
124
 
125
  * **[Elementor SEO](https://rankmath.com/blog/elementor-seo/)** - Deep integration with the Elementor Page builder. Now, you don’t need to go back and forth between tabs to configure your page’s SEO. Everything related to SEO for Elementor can be configured in the visual editor.
126
 
127
  * **[Divi SEO](https://rankmath.com/blog/divi-seo/)** - One of its kind integration with the Divi Page Builder and theme. Handle everything related to SEO from the page editor screen without jumping back to the default editor. This helps you optimize your website in real-time for SEO.
128
 
129
- * **Page Builder SEO** - The Rank Math SEO plugin's content analysis works perfectly with popular page builders and themes like Oxygen Builder, WPBakery, Avada, Astra, Kadence, Themify, Beaver Builder, Page Builder Framework, Schema theme, Flothemes, OceanWP, etc.
130
 
131
- * **Optimize UNLIMITED Keywords At Once** — You can optimize your post for up to 5 different keywords by default with the Rank Math SEO plugin and can use a filter to optimize for unlimited keywords.
132
 
133
- * **Image SEO** - With Rank Math SEO's perfect solution to add ALT & Title tags on the fly, to optimize images, showing inside the content, and that too for FREE, there is no reason to choose any other SEO solution that does not provide all the essential SEO features.
134
 
135
  * **[Web Stories SEO](https://rankmath.com/kb/google-web-stories/)** - Make any Story created with the Google's Web Stories plugin SEO-Ready. Automatically adds AMP-friendly Schema markup and Meta tags.
136
 
137
- * **[WooCommerce SEO](https://rankmath.com/blog/woocommerce-seo/)** - Optimizing your store products is easier with Rank Math. SEO Meta tags and Schema are automatically added but can be customized with total control as well. Rank Math SEO has the most advanced SEO for WooCommerce.
138
 
139
- * **Google AMP SEO** - Accelerated Mobile Pages need to be prepared for search engines. What better way to do that than letting Rank Math SEO use your regular SEO details and optimizing AMPs based on that data?
140
 
141
- * **bbPress SEO** - User-generated content in bbPress is properly optimized with Rank Math SEO handling all the important SEO aspects. Q&A Schema is added to bbPress topics along with other essential meta tags.
142
 
143
- * **BuddyPress SEO** - As with bbPress, SEO for BuddyPress content is done automatically done using Rank Math SEO. You get all the options you need to get higher rankings with your user-generated content.
144
 
145
- * **Quick Edit SEO Details** - Go through a lot of posts/pages quickly by ensuring they are optimized for search engines. Quickly edit multiple SEO fields at once using Rank Math SEO.
146
 
147
  * **[Instant Indexing for Bing & Yandex](https://rankmath.com/kb/how-to-use-indexnow/)** - Get your content instantly indexed by Bing & Yandex using their IndexNow API.
148
 
149
- * **[Instant Indexing for Google](https://rankmath.com/blog/google-indexing-api/)** - Instantly getting indexed by Google used to be reserved to huge brands and large websites. Not anymore. Just about anyone can take advantage of Google’s Instant Indexing feature using Rank Math SEO.
150
 
151
  * **[Version Control](https://rankmath.com/kb/version-control/)** - Rollback or try beta versions. Updating and downgrading your plugins is now a matter of few clicks. Automatically update to the latest versions or try out the latest beta builds.
152
 
153
- * **Translation Plugins Support** — Rank Math SEO works flawlessly with the top translations plugins like WPML, TranslatePress, Weglot, Polylang (not entirely compatible yet), etc., making it a perfect companion.
154
 
155
- * **XML Sitemap** - The Rank Math SEO plugin comes with a fast-loading Sitemap feature that works with different post types, including the custom ones, and provides deep controlling. One can also generate a Locations KML file via filter for Local Sitemap, & a WooCommerce Sitemap.
156
 
157
- * **1-Click Import From Yoast** — With a single click of your mouse, Rank Math SEO can import all your settings from Yoast SEO & Yoast SEO Premium to itself. The transfer is instant, and you don't lose any SERP rankings as a result.
158
 
159
- * **1-Click Import From AIO SEO** — Rank Math SEO can also import all your settings from AIO SEO & All in One SEO Pack Pro in a single click. The transfer is instant, and you don't lose any SERP rankings as a result.
160
 
161
- * **1-Click Import From All In One Schema Rich Snippets** — Rank Math SEO can also import all of AIO's Rich Snippet & Schema Pro settings in a few clicks, which help preserve your rich rankings when moving to Rank Math SEO.
162
 
163
- * **1-Click Import From SEOPress SEO** — With a single click of your mouse, Rank Math SEO can import all your settings from SEOPress & SEOPress Pro SEO plugin to itself. The transfer is instant, and you don't lose any SERP rankings as a result.
164
 
165
  * **1-Click Import From Redirection** — Moving all your redirects shouldn’t be a hassle. That’s why we have made importing redirections from the popular Redirection plugin as simple as clicking a button.
166
 
167
- * **Google Keyword Suggestion** — When deciding on focus keywords, Rank Math SEO can help you discover more keywords by pulling in automatic keyword suggestions from Google.
168
 
169
- ### Who Can Benefit From Rank Math SEO? ###
170
 
171
- #### Rank Math SEO Plugin is perfect for: ####
172
  ✔ Bloggers
173
  ✔ eCommerce Store Owners
174
  ✔ Niche Sites
@@ -182,12 +182,12 @@ Even with significantly more features than other plugins, Rank Math SEO loads am
182
  ✔ Vloggers (Video Bloggers)
183
  ✔ Or any WordPress Website
184
 
185
- ### Take a sneak peek into Rank Math SEO’s features ###
186
 
187
  #### Detailed Setup Tutorial ####
188
  [youtube https://www.youtube.com/watch?v=cQLvCBVev3I]
189
 
190
- ### List of Best Rank Math SEO Features ###
191
 
192
  * Clean, & Simple User Interface
193
  * **Optimal Settings Pre-Selected**
@@ -314,18 +314,18 @@ Even with significantly more features than other plugins, Rank Math SEO loads am
314
  * **Detailed Documentation**
315
  * Contextual Help
316
 
317
- ### BIG Publications are Raving About Rank Math SEO ###
318
- **<a href="https://s.rankmath.com/reviews" target="_blank">Rank Math SEO Reviews</a>**
319
 
320
  [youtube https://www.youtube.com/watch?v=cFI_jRVOQZk]
321
 
322
  [youtube https://www.youtube.com/watch?v=rkZRtRizyUw]
323
 
324
- <a href="https://www.matthewwoodward.co.uk/seo/reviews/rank-math/?utm_campaign=Rank+Math" target="_blank">Rank Math SEO Review – Why I Ditched Yoast For Rank Math SEO</a>
325
 
326
- <a href="https://www.producthunt.com/posts/rank-math-seo/?utm_campaign=Rank+Math" target="_blank">Rank Math SEO on Product Hunt</a>
327
 
328
- <a href="https://www.suganthan.com/blog/rank-math-seo-plugin-review-from-an-seo-guy/?utm_campaign=Rank+Math" target="_blank">Rank Math SEO Plugin Review from an SEO Consultant</a>
329
 
330
  and many more
331
 
@@ -333,9 +333,9 @@ and many more
333
  ## Check RANK MATH PRO WHICH MAKES SEO EASIER & FASTER ##
334
  [youtube https://www.youtube.com/watch?v=fq8Dnl09W5g]
335
 
336
- ## <a href="https://rankmath.com/free-vs-pro/" target="_blank">Rank Math SEO FREE VS PRO COMPARISON</a> ##
337
 
338
- ## UNIQUE FEATURES OF RANK MATH SEO PRO ##
339
 
340
  **Google Analytics & Search Console Integration (The only SEO plugin that provides it)**
341
  ✔ Integrated Google Analytics, AdSense & Search Console Data
@@ -400,48 +400,48 @@ and many more
400
 
401
  ## CONNECT WITH THE TEAM AND SEO EXPERTS ##
402
 
403
- **<a href="https://www.facebook.com/groups/rankmathseopluginwordpress/?utm_campaign=Rank+Math" target="_blank">JOIN FACEBOOK GROUP COMMUNITY</a>**: The purpose of this Facebook group is to have a collective place where the community can help each other, and we can get some feedback to improve Rank Math SEO as well. Joining the group is also a great way to connect with like-minded people and share your SEO experience.
404
 
405
  = Branding Guideline =
406
- Rank Math® SEO is a registered trademark. Please use the following format when mentioning the Rank Math SEO plugin anywhere.
407
- * Rank Math SEO [correct]
408
  * RankMath [incorrect]
409
  * Rankmath [incorrect]
410
  * rankmath [incorrect]
411
  * rankMath [incorrect]
412
 
413
  = Getting Started: =
414
- **<a href="https://rankmath.com/kb/how-to-setup/?utm_source=LP&utm_campaign=WP" target="_blank">1. How to Setup Rank Math SEO:</a>** Once you install Rank Math SEO for the first time, you will be greeted with the Setup Wizard, which is discussed in detail here.
415
 
416
- **<a href="https://www.facebook.com/groups/rankmathseopluginwordpress/?utm_campaign=Rank+Math">2. Facebook Group:</a>** In this group, you will find the team of Rank Math SEO plugin fairly active and ready to answer your SEO related queries.
417
 
418
- **<a href="https://rankmath.com/kb/wordpress/seo-suite/?utm_source=LP&utm_campaign=WP" target="_blank">3. User Documentation:</a>** Although Rank Math SEO is already easy to set up, we've put together tutorials, guides, and some knowledge bases to help you set up and get started with Rank Math SEO.
419
 
420
- **<a href="https://translate.wordpress.org/projects/wp-plugins/seo-by-rank-math/?utm_campaign=Rank+Math" target="_blank">4. Contribute (Sharing is caring):</a>** If you are one of those caring hearts that want to help, go to our <a href="https://github.com/RankMath/seo-by-rank-math/?utm_campaign=Rank+Math" target="_blank">Rank Math SEO's GitHub Repository</a> and see how you can contribute to the SEO community. You can also add a new language via <a href="https://translate.wordpress.org/projects/wp-plugins/seo-by-rank-math/?utm_campaign=Rank+Math" target="_blank">translate.wordpress.org.</a>
421
 
422
  **<a href="https://mythemeshop.com/wordpress-errors-fixes/?utm_campaign=Rank+Math" target="_blank">5. Fixing Common Errors:</a>** Sometimes, avoidable or common issues can get you stuck. We’ve created a common guide where we discuss all the common issues and how to fix them.
423
 
424
- **<a href="https://support.rankmath.com/?utm_source=LP&utm_campaign=WP" target="_blank">6. Support Ticket Forum:</a>** Our dedicated forum is where you can get support for any issues that you face with Rank Math SEO. In the forum, we'll also try to answer some SEO queries. User experience is important to us, and our aim is to answer all the queries on the forum in a timely manner.
425
 
426
- **[7. Frequently Asked Questions:](#faq-header)** Here, we’ve answered the most commonly asked questions about Rank Math SEO. The questions are related to features, pricing, and others.
427
 
428
  == Installation ==
429
 
430
  1. Visit `Plugins > Add New`
431
- 2. Search for `Rank Math SEO`
432
- 3. Install Rank Math SEO once it appears
433
- 4. Activate Rank Math SEO from your Plugins page.
434
  5. Go to "after activation" below.
435
 
436
  = Manually =
437
 
438
  1. Upload the `seo-by-rank-math` folder to the `/wp-content/plugins/` directory
439
- 2. Activate the Rank Math SEO plugin through the 'Plugins' menu in WordPress
440
  3. Go to "after activation" below.
441
 
442
  = After activation =
443
 
444
- 1. You should see the Rank Math SEO setup wizard.
445
  2. Go through the setup wizard and set up the plugin for your site.
446
  3. You're done!
447
 
@@ -453,39 +453,39 @@ Quite honestly - no one can give you a guarantee that your traffic will increase
453
  SEO is an ever-changing game, and what works today might not work tomorrow. With that said, we do guarantee that our plugin is the best SEO plugin there is, and it gives you the best chance of ranking higher in Google than any other SEO plugin available right now.
454
 
455
 
456
- = Can I transfer my SEO & Redirection settings from another plugin to Rank Math SEO? =
457
- Absolutely. Rank Math SEO has a built-in feature to import SEO settings from the most popular SEO plugins like Yoast SEO, Yoast SEO Premium, AIO SEO Pack, All In One Schema Rich Snippets, and Redirection. Once you install Rank Math SEO and run the setup wizard, you'll see a dedicated step where you'll get to import all your SEO settings to Rank Math SEO.
458
 
459
- = What themes does Rank Math SEO support? =
460
- Rank Math SEO has been tested with many WordPress themes and supports all major WordPress themes. Since we follow WordPress' plugin development guidelines, you can rest assured that Rank Math SEO will work perfectly, no matter what theme you use. If you've installed Rank Math SEO and are facing issues, it might not be because of theme incompatibility. Please get in touch with the support team by opening a support ticket in our support forum, and we will fix it for you.
461
 
462
- = What plugins is Rank Math SEO compatible with? =
463
- Rank Math SEO has been designed using WordPress' strict plugin development guidelines and therefore, is compatible with the majority of plugins. However, if you use another SEO plugin that performs any of the functions that Rank Math SEO does, then you might get unexpected results. We recommend that you disable or delete other SEO plugins for best results.
464
 
465
- = Will my website slow down if I Install Rank Math SEO? =
466
- No. Rank Math SEO's code has been created and optimized for maximum performance. That is why using Rank Math SEO on your website will not slow down your website. On the contrary, there is a good chance that your website will perform better than ever with Rank Math SEO, as it does the job of multiple plugins. Once you remove the unnecessary plugins from your website, your website's performance is sure to get better.
467
 
468
- = Is creating a Rank Math SEO account needed to use the plugin? =
469
- Absolutely not. Creating a FREE Rank Math SEO account is needed only to utilize our API via which one can get automatic keyword suggestions from Google and can run SEO Site Analysis inside WordPress. <a href="https://rankmath.com/kb/free-account-benefits/" target="_blank">You can read more about that here.</a>
470
 
471
- = Will you set up Rank Math SEO on my website? =
472
- Rank Math SEO is pretty easy to set up on your website. Apart from detailed instructions on how to install Rank Math SEO on our website, we've built in a user-friendly setup wizard that will help you set up and configure Rank Math SEO perfectly for your website. If you face any issues even after using the setup wizard, please get in touch with the support team by sending an email to support@rankmath.com
473
 
474
- = Do I have to remove other SEO plugins if I install Rank Math SEO? =
475
- That is recommended. Rank Math SEO is designed to be an all-in-one SEO plugin that takes care of everything SEO-related. If you use other SEO plugins with Rank Math SEO on your website, not only will the performance of your website be negatively affected, but both plugins working together can produce unexpected SEO results.
476
 
477
- = I already use an SEO plugin. Can I use Rank Math SEO on top of that plugin? =
478
- You can, but we do not recommend it. Rank Math SEO has all the functionalities that you would need in an SEO plugin. If you still prefer using another plugin for a specific feature, you can do that. But, we would recommend that you turn off that functionality of Rank Math SEO to avoid potential conflicts/issues.
479
 
480
- = Will I lose my rankings if I switch to Rank Math SEO? =
481
- No, you won't. When you install Rank Math SEO, it will seamlessly import your settings from your current SEO plugin. Once the process is complete, the search engines won't even notice a change on your website.
482
 
483
- If you set up Rank Math SEO from scratch, then your search engine rankings will depend on how you configure it. But please be advised that Google and other search engines prefer good, useful content over anything else.
484
 
485
- = What are the technical requirements for using Rank Math SEO? =
486
- Rank Math SEO requires at least PHP 7.2, cURL lib, cron jobs, to be installed and enabled on the server. Those things are mostly installed on every good hosting server. When you initiate Rank Math SEO's setup process, Rank Math SEO will also perform a compatibility check to confirm if your server can run Rank Math SEO. If your server has a lower configuration of any Software, please ask your hosting to update it to the latest version.
487
 
488
- = Can I use Rank Math SEO on a WordPress.com website? =
489
  Yes, as the plugin is provided through WordPress.org, it is available on WordPress.com as well. However, you might be required to opt for the Business plan of WordPress.com
490
 
491
  = Which Schema type is best for coupon websites? =
@@ -498,9 +498,9 @@ Google is almost never willing to index all the pages and images available on a
498
 
499
  = How do I noindex inner paginated posts of a website? =
500
 
501
- Rank Math SEO makes it extremely simple and easy to NoIndex the paginated series’ of your homepage, archives, or single posts.
502
 
503
- Head over to WordPress Dashboard > Rank Math SEO > Titles & Meta > Misc. Pages.
504
 
505
  Scroll down a bit and you will see the `NoIndex Paginated Pages` option.
506
 
@@ -509,7 +509,7 @@ Enable it and you are good to good. Here is a screenshot for reference: https://
509
  Now, your paginated pages like `/page/2` etc. will no longer appear in Search Engines.
510
 
511
  = The tag "rel=canonical" appears more than once in the document =
512
- That must be coming from the theme's code or some other SEO/AMP plugin as the Rank Math SEO plugin adds only one canonical URL per page.
513
 
514
  You should try disabling all other plugins and/or switch to a different theme and check.
515
 
@@ -519,7 +519,7 @@ There are mainly two types of Schema entities, Article and BlogPosting. Article
519
  On the contrary, BlogPosting Schema is used for blog posts. They can be personal or commercial in nature. Most of the non-professional blogs you see online use this Schema type.
520
 
521
  = Why is Google not showing the Schema data? =
522
- For the Rich Snippet data, Rank Math SEO plugin adds the necessary markup for rich snippets. It may take some time before they show up in the search results. Please allow a few days for Google to pick up the new information.
523
 
524
  Google WILL NOT necessarily show the Schema data though. They check a few things first and may choose not to show your rich schema. For instance, they check the overall quality of the site, and if the Schema content is representative of the main content of the page or not.
525
 
@@ -531,7 +531,7 @@ Link: <a href="https://s.rankmath.com/googlestructureddata" target="_blank">http
531
  = Why is the Carousel or Data Highlighter Not Working? =
532
  Google can actually extract content from your pages and display it as a rich carousel (AMP or not).
533
 
534
- But to make it easier, the best you can do is to use the Data Highlighter option in your Search Appearance tab in Webmaster Tools for your important pages (especially the pillar posts) but not on all content types. Rank Math SEO makes it extremely convenient to do so.
535
 
536
  To learn more about using this feature, visit <a href="https://s.rankmath.com/googledatahighlighter" target="_blank">https://s.rankmath.com/googledatahighlighter</a>
537
 
@@ -572,11 +572,11 @@ Please drop us an email at support@rankmath.com and we would be more than happy
572
  6. Support for 15+ Rich Snippet types.
573
  7. No need to pay for any service when you can track keyword ranking change from our own Search Console.
574
  8. Comes with in-built options for social media optimization.
575
- 9. Rank Math SEO Comes with a 404 monitor and easy-to-use Redirection Manager.
576
  10. Ground Breaking Integration with Elementor Page Builder.
577
  11. Powerful XML Sitemap.
578
  12. Role Manager gives you full control. Useful for multi-author sites.
579
- 13. Rank Math SEO Comes with 15+ FREE modules.
580
 
581
  == Changelog ==
582
 
@@ -597,6 +597,11 @@ Please drop us an email at support@rankmath.com and we would be more than happy
597
  = 1.0.98.1 [Sep 22, 2022] =
598
  * Fixed: Strict PHP 7.2 error. It is recommended to update the PHP version to at least 7.4.
599
 
 
 
 
 
 
600
  **Note:** From the next update, we will stop supporting older versions.
601
 
602
- Full changelog can be found here - **[Rank Math SEO changelog](https://rankmath.com/changelog/?utm_source=Plugin&utm_medium=Changelog&utm_campaign=WP)**
1
+ === Rank Math SEO ===
2
  Contributors: rankmath
3
  Plugin link: https://rankmath.com/?utm_source=LP&utm_campaign=WP
4
  Tags: seo, sitemap, google search console, schema, redirection, WordPress SEO
5
  Tested up to: 6.0
6
  Requires at least: 5.6
7
+ Requires PHP: 7.4
8
+ Stable tag: 1.0.98.2
9
  License: GPLv3 or later
10
  License URI: https://www.gnu.org/licenses/gpl-3.0.txt
11
 
17
  **1st WordPress SEO Plugin to use AI (Artificial Intelligence)** 🦾
18
  ★★★★★<br>
19
 
20
+ **SEO is the most consistent source of traffic for any website.** We created <a href="https://rankmath.com/wordpress/plugin/seo-suite/?utm_source=LP&utm_campaign=WP" target="_blank">**Rank Math, a WordPress SEO plugin**</a>, to help every website owner get access to the SEO tools they need to improve their SEO and attract more traffic to their website.
21
+ ## <a href="https://demo.rankmath.com/wp-admin/admin.php?page=rank-math-wizard" target="_blank">Try The FREE Demo of Rank Math</a> ##
22
 
23
  [youtube https://www.youtube.com/watch?v=NgeaqIy2OB0]
24
 
25
+ <a href="https://rankmath.com/wordpress/plugin/seo-suite/?utm_source=LP&utm_campaign=WP#features" target="_blank">Features</a> | <a href="https://rankmath.com/wordpress/plugin/seo-suite/?utm_source=LP&utm_campaign=WP#reasons" target="_blank">Why Choose Rank Math?</a> | <a href="https://rankmath.com/wordpress/plugin/seo-suite/?utm_source=LP&utm_campaign=WP#comparison" target="_blank">Compare</a> | <a href="https://rankmath.com/wordpress/plugin/seo-suite/?utm_source=LP&utm_campaign=WP#screenshots" target="_blank">Screenshots</a> | <a href="https://rankmath.com/wordpress/plugin/seo-suite/?utm_source=LP&utm_campaign=WP#benefits" target="_blank">Benefits</a>
26
 
27
+ SEO might be the best and most **consistent source of traffic** for one's website, but it's not without its quirks. The constant process of optimizing your posts can sometimes take more time than actually writing the content. **If you always feel that you can do more on the SEO** front for your website but don't have the time, **then Rank Math is what you're looking for.**
28
 
29
+ Its host of **intelligent features** brings top SEO capabilities in your hands that were previously out of reach. The **smart automation** features give you the **power of an entire SEO team** with just a few clicks. A **well thought out design, powerful features, and years of development** by the MyThemeShop squad make Rank Math a game-changing SEO plugin that will level the SEO playing field in your favor to help increase traffic.
30
 
31
  ### Exclusive Content AI. Write Highly Optimized SEO Content ###
32
 
42
  ➜ Related Keywords
43
  ➜ Full Control via Role Manager
44
 
45
+ ### Rank Math beats all of its competitors, hands down. ###
46
 
47
+ See the features which are exclusive to the Rank Math plugin and understand why Rank Math is possibly the **Best SEO Plugin for WordPress**.
48
 
49
  * **Setup Wizard (Easy to follow)**
50
+ Rank Math practically configures itself. Rank Math features a [step-by-step installation and configuration wizard](https://rankmath.com/kb/how-to-setup/?utm_source=LP&utm_campaign=WP) that sets up SEO for WordPress perfectly.
51
 
52
  * **Google Schema Markup aka Rich Snippets Integrated**
53
+ Configuring Google Schema Markup, aka Rich Snippets, is now easy, thanks to Rank Math. With support for [16+ types of Schema Markups, aka Rich Snippets, including the Rating Schema,](https://rankmath.com/kb/rich-snippets/?utm_source=LP&utm_campaign=WP#schema-types-offers-by-rank-math) you'll be able to optimize your posts in just a few clicks. It also includes the [FAQ Schema aka FAQPage Schema Block](https://rankmath.com/blog/faq-schema/?utm_source=LP&utm_campaign=WP) & the [HowTo aka How To Schema Block](https://rankmath.com/blog/howto-schema/?utm_source=LP&utm_campaign=WP) in the plugin.
54
 
55
  * **Optimize Unlimited Keywords**
56
+ Unlike other plugins, Rank Math lets you optimize your posts for **unlimited focus keywords** per post. 5 by default. Increase by adding this [filter](https://rankmath.com/kb/filters-hooks-api-developer/#unlimited-keywords).
57
 
58
  * **Content AI**
59
  Rank Math is the FIRST & ONLY SEO plugin that uses AI to help you write content. Your personal AI Assistant for creating SEO friendly content. Our Content AI takes all the hassle out of writing. It ensures that the content you write is not only great for your visitors, but for search engines (SEO) as well. [Learn how to use Content AI for writing SEO optimized content that ranks](https://rankmath.com/kb/how-to-use-content-ai/).
60
 
61
  * **Google Search Console Integration**
62
+ Rank Math saves you a ton of time by integrating with Google Search Console and displaying important information about your website right inside WordPress.
63
 
64
  * **Google Keyword Ranking**
65
+ With Rank Math Plugin, you can track your keyword rankings in Google.
66
 
67
  * **Google Analytics Integration**
68
+ Rank Math offers a one-click solution to install Google Analytics script without pasting anything manually anywhere. You can also exclude the Logged-in users.
69
 
70
  * **Optimal Settings Pre-Selected**
71
+ Configuring an SEO plugin takes time, and can be confusing. Rank Math saves you the trouble with its optimal default settings, which are ideal for most websites, and if needed, can be changed.
72
 
73
  * **LSI Keyword Tool Integrated**
74
+ Rank Math's integrated LSI keyword tool gives you multiple keyword variations of your focus keyword, which helps you attract more traffic to your posts. Free account needed.
75
 
76
  * **Add Overlay Icons On Social Images**
77
+ Rank Math makes social thumbnails click magnets by giving you the option of overlaying a GIF or a video icon on the thumbnail.
78
 
79
  * **Advanced SEO Analysis Tool**
80
+ With just a single click, Rank Math can perform an SEO audit of your website.
81
 
82
  * **30 Detailed SEO Tests**
83
+ Rank Math is designed to completely supercharge your website's SEO with its 30 detailed SEO tests. Free account needed.
84
 
85
  * **Module Based System**
86
+ Rank Math has been designed with a module-based system, each of which can be enabled or disabled as per your needs, giving you extra speed and control.
87
 
88
  * **Smart Redirection Manager**
89
+ Rank Math's built-in smart redirection manager will help you create, manage, delete, enable, or disable redirects at scale.
90
 
91
  * **Local Business SEO**
92
+ Rank Math is designed to be used by Global websites and local websites alike. With its local SEO features, local sites can stand out in the search engine results like Google's and attract more traffic.
93
 
94
  * **SEO Optimized Breadcrumbs**
95
+ Rank Math can display SEO optimized Breadcrumbs on all websites, even if the theme doesn't support Schema.org coding.
96
 
97
  * **404 Monitor**
98
+ Rank Math has a built-in 404 error monitor that helps you find and resolve 404 errors for a better user experience.
99
 
100
  * **Deep Content Analysis Tests**
101
+ On-Page SEO is no longer a mystery with Rank Math's deep content analysis and precise recommendations.
102
 
103
  * **Internal Linking Suggestions**
104
+ Rank Math intelligently suggests other posts from your website for internal linking from your current posts, improving the chances of ranking higher in the SERPs.
105
 
106
  * **Role Manager**
107
+ Even if you have multiple employees manage your website, you can precisely control what each of them has to access to in Rank Math with its role manager.
108
 
109
  * **Multisite Ready**
110
+ Whether you run a single WordPress website or an entire network of sites - we are ready for you. Rank Math fully supports the WordPress Multiuser project (WPMU).
111
 
112
  * **and has lightweight Code compared to slow-loading in other SEO plugins.**
113
+ Even with significantly more features than other plugins, Rank Math loads amazingly fast and keeps your website fast always.
114
 
115
+ ### Why is Rank Math such a game-changer? ###
116
 
117
+ * **Auto Configuration** — All you have to do is set a few options, and Rank Math will configure itself perfectly for your website.
118
 
119
+ * **Super Fast SEO Plugin** — Even after packing so many features, Rank Math has a negligible load on your server, thus making it one of the fastest SEO plugins for WordPress.
120
 
121
+ * **Automatic Keyword Suggestions from Google** — Get keyword suggestions from Google as you start typing letters in the focus keyword field of Rank Math.
122
 
123
+ * **New SEO Analyzer** — Rank Math's built-in SEO analysis will give you SEO recommendations that you'd normally spend hundreds of dollars to get.
124
 
125
  * **[Elementor SEO](https://rankmath.com/blog/elementor-seo/)** - Deep integration with the Elementor Page builder. Now, you don’t need to go back and forth between tabs to configure your page’s SEO. Everything related to SEO for Elementor can be configured in the visual editor.
126
 
127
  * **[Divi SEO](https://rankmath.com/blog/divi-seo/)** - One of its kind integration with the Divi Page Builder and theme. Handle everything related to SEO from the page editor screen without jumping back to the default editor. This helps you optimize your website in real-time for SEO.
128
 
129
+ * **Page Builder SEO** - The Rank Math plugin's content analysis works perfectly with popular page builders and themes like Oxygen Builder, WPBakery, Avada, Astra, Kadence, Themify, Beaver Builder, Page Builder Framework, Schema theme, Flothemes, OceanWP, etc.
130
 
131
+ * **Optimize UNLIMITED Keywords At Once** — You can optimize your post for up to 5 different keywords by default with the Rank Math plugin and can use a filter to optimize for unlimited keywords.
132
 
133
+ * **Image SEO** - With Rank Math's perfect solution to add ALT & Title tags on the fly, to optimize images, showing inside the content, and that too for FREE, there is no reason to choose any other SEO solution that does not provide all the essential SEO features.
134
 
135
  * **[Web Stories SEO](https://rankmath.com/kb/google-web-stories/)** - Make any Story created with the Google's Web Stories plugin SEO-Ready. Automatically adds AMP-friendly Schema markup and Meta tags.
136
 
137
+ * **[WooCommerce SEO](https://rankmath.com/blog/woocommerce-seo/)** - Optimizing your store products is easier with Rank Math. SEO Meta tags and Schema are automatically added but can be customized with total control as well. Rank Math has the most advanced SEO for WooCommerce.
138
 
139
+ * **Google AMP SEO** - Accelerated Mobile Pages need to be prepared for search engines. What better way to do that than letting Rank Math use your regular SEO details and optimizing AMPs based on that data?
140
 
141
+ * **bbPress SEO** - User-generated content in bbPress is properly optimized with Rank Math handling all the important SEO aspects. Q&A Schema is added to bbPress topics along with other essential meta tags.
142
 
143
+ * **BuddyPress SEO** - As with bbPress, SEO for BuddyPress content is done automatically done using Rank Math. You get all the options you need to get higher rankings with your user-generated content.
144
 
145
+ * **Quick Edit SEO Details** - Go through a lot of posts/pages quickly by ensuring they are optimized for search engines. Quickly edit multiple SEO fields at once using Rank Math.
146
 
147
  * **[Instant Indexing for Bing & Yandex](https://rankmath.com/kb/how-to-use-indexnow/)** - Get your content instantly indexed by Bing & Yandex using their IndexNow API.
148
 
149
+ * **[Instant Indexing for Google](https://rankmath.com/blog/google-indexing-api/)** - Instantly getting indexed by Google used to be reserved to huge brands and large websites. Not anymore. Just about anyone can take advantage of Google’s Instant Indexing feature using Rank Math.
150
 
151
  * **[Version Control](https://rankmath.com/kb/version-control/)** - Rollback or try beta versions. Updating and downgrading your plugins is now a matter of few clicks. Automatically update to the latest versions or try out the latest beta builds.
152
 
153
+ * **Translation Plugins Support** — Rank Math works flawlessly with the top translations plugins like WPML, TranslatePress, Weglot, Polylang (not entirely compatible yet), etc., making it a perfect companion.
154
 
155
+ * **XML Sitemap** - The Rank Math plugin comes with a fast-loading Sitemap feature that works with different post types, including the custom ones, and provides deep controlling. One can also generate a Locations KML file via filter for Local Sitemap, & a WooCommerce Sitemap.
156
 
157
+ * **1-Click Import From Yoast** — With a single click of your mouse, Rank Math can import all your settings from Yoast SEO & Yoast SEO Premium to itself. The transfer is instant, and you don't lose any SERP rankings as a result.
158
 
159
+ * **1-Click Import From AIO SEO** — Rank Math can also import all your settings from AIO SEO & All in One SEO Pack Pro in a single click. The transfer is instant, and you don't lose any SERP rankings as a result.
160
 
161
+ * **1-Click Import From All In One Schema Rich Snippets** — Rank Math can also import all of AIO's Rich Snippet & Schema Pro settings in a few clicks, which help preserve your rich rankings when moving to Rank Math.
162
 
163
+ * **1-Click Import From SEOPress SEO** — With a single click of your mouse, Rank Math can import all your settings from SEOPress & SEOPress Pro SEO plugin to itself. The transfer is instant, and you don't lose any SERP rankings as a result.
164
 
165
  * **1-Click Import From Redirection** — Moving all your redirects shouldn’t be a hassle. That’s why we have made importing redirections from the popular Redirection plugin as simple as clicking a button.
166
 
167
+ * **Google Keyword Suggestion** — When deciding on focus keywords, Rank Math can help you discover more keywords by pulling in automatic keyword suggestions from Google.
168
 
169
+ ### Who Can Benefit From Rank Math? ###
170
 
171
+ #### Rank Math Plugin is perfect for: ####
172
  ✔ Bloggers
173
  ✔ eCommerce Store Owners
174
  ✔ Niche Sites
182
  ✔ Vloggers (Video Bloggers)
183
  ✔ Or any WordPress Website
184
 
185
+ ### Take a sneak peek into Rank Math’s features ###
186
 
187
  #### Detailed Setup Tutorial ####
188
  [youtube https://www.youtube.com/watch?v=cQLvCBVev3I]
189
 
190
+ ### List of Best Rank Math Features ###
191
 
192
  * Clean, & Simple User Interface
193
  * **Optimal Settings Pre-Selected**
314
  * **Detailed Documentation**
315
  * Contextual Help
316
 
317
+ ### BIG Publications are Raving About Rank Math ###
318
+ **<a href="https://s.rankmath.com/reviews" target="_blank">Rank Math Reviews</a>**
319
 
320
  [youtube https://www.youtube.com/watch?v=cFI_jRVOQZk]
321
 
322
  [youtube https://www.youtube.com/watch?v=rkZRtRizyUw]
323
 
324
+ <a href="https://www.matthewwoodward.co.uk/seo/reviews/rank-math/?utm_campaign=Rank+Math" target="_blank">Rank Math Review – Why I Ditched Yoast For Rank Math</a>
325
 
326
+ <a href="https://www.producthunt.com/posts/rank-math-seo/?utm_campaign=Rank+Math" target="_blank">Rank Math on Product Hunt</a>
327
 
328
+ <a href="https://www.suganthan.com/blog/rank-math-seo-plugin-review-from-an-seo-guy/?utm_campaign=Rank+Math" target="_blank">Rank Math Plugin Review from an SEO Consultant</a>
329
 
330
  and many more
331
 
333
  ## Check RANK MATH PRO WHICH MAKES SEO EASIER & FASTER ##
334
  [youtube https://www.youtube.com/watch?v=fq8Dnl09W5g]
335
 
336
+ ## <a href="https://rankmath.com/free-vs-pro/" target="_blank">Rank Math FREE VS PRO COMPARISON</a> ##
337
 
338
+ ## UNIQUE FEATURES OF Rank Math PRO ##
339
 
340
  **Google Analytics & Search Console Integration (The only SEO plugin that provides it)**
341
  ✔ Integrated Google Analytics, AdSense & Search Console Data
400
 
401
  ## CONNECT WITH THE TEAM AND SEO EXPERTS ##
402
 
403
+ **<a href="https://www.facebook.com/groups/rankmathseopluginwordpress/?utm_campaign=Rank+Math" target="_blank">JOIN FACEBOOK GROUP COMMUNITY</a>**: The purpose of this Facebook group is to have a collective place where the community can help each other, and we can get some feedback to improve Rank Math as well. Joining the group is also a great way to connect with like-minded people and share your SEO experience.
404
 
405
  = Branding Guideline =
406
+ Rank Math® SEO is a registered trademark. Please use the following format when mentioning the Rank Math plugin anywhere.
407
+ * Rank Math [correct]
408
  * RankMath [incorrect]
409
  * Rankmath [incorrect]
410
  * rankmath [incorrect]
411
  * rankMath [incorrect]
412
 
413
  = Getting Started: =
414
+ **<a href="https://rankmath.com/kb/how-to-setup/?utm_source=LP&utm_campaign=WP" target="_blank">1. How to Setup Rank Math:</a>** Once you install Rank Math for the first time, you will be greeted with the Setup Wizard, which is discussed in detail here.
415
 
416
+ **<a href="https://www.facebook.com/groups/rankmathseopluginwordpress/?utm_campaign=Rank+Math">2. Facebook Group:</a>** In this group, you will find the team of Rank Math plugin fairly active and ready to answer your SEO related queries.
417
 
418
+ **<a href="https://rankmath.com/kb/wordpress/seo-suite/?utm_source=LP&utm_campaign=WP" target="_blank">3. User Documentation:</a>** Although Rank Math is already easy to set up, we've put together tutorials, guides, and some knowledge bases to help you set up and get started with Rank Math.
419
 
420
+ **<a href="https://translate.wordpress.org/projects/wp-plugins/seo-by-rank-math/?utm_campaign=Rank+Math" target="_blank">4. Contribute (Sharing is caring):</a>** If you are one of those caring hearts that want to help, go to our <a href="https://github.com/RankMath/seo-by-rank-math/?utm_campaign=Rank+Math" target="_blank">Rank Math's GitHub Repository</a> and see how you can contribute to the SEO community. You can also add a new language via <a href="https://translate.wordpress.org/projects/wp-plugins/seo-by-rank-math/?utm_campaign=Rank+Math" target="_blank">translate.wordpress.org.</a>
421
 
422
  **<a href="https://mythemeshop.com/wordpress-errors-fixes/?utm_campaign=Rank+Math" target="_blank">5. Fixing Common Errors:</a>** Sometimes, avoidable or common issues can get you stuck. We’ve created a common guide where we discuss all the common issues and how to fix them.
423
 
424
+ **<a href="https://support.rankmath.com/?utm_source=LP&utm_campaign=WP" target="_blank">6. Support Ticket Forum:</a>** Our dedicated forum is where you can get support for any issues that you face with Rank Math. In the forum, we'll also try to answer some SEO queries. User experience is important to us, and our aim is to answer all the queries on the forum in a timely manner.
425
 
426
+ **[7. Frequently Asked Questions:](#faq-header)** Here, we’ve answered the most commonly asked questions about Rank Math. The questions are related to features, pricing, and others.
427
 
428
  == Installation ==
429
 
430
  1. Visit `Plugins > Add New`
431
+ 2. Search for `Rank Math`
432
+ 3. Install Rank Math once it appears
433
+ 4. Activate Rank Math from your Plugins page.
434
  5. Go to "after activation" below.
435
 
436
  = Manually =
437
 
438
  1. Upload the `seo-by-rank-math` folder to the `/wp-content/plugins/` directory
439
+ 2. Activate the Rank Math plugin through the 'Plugins' menu in WordPress
440
  3. Go to "after activation" below.
441
 
442
  = After activation =
443
 
444
+ 1. You should see the Rank Math setup wizard.
445
  2. Go through the setup wizard and set up the plugin for your site.
446
  3. You're done!
447
 
453
  SEO is an ever-changing game, and what works today might not work tomorrow. With that said, we do guarantee that our plugin is the best SEO plugin there is, and it gives you the best chance of ranking higher in Google than any other SEO plugin available right now.
454
 
455
 
456
+ = Can I transfer my SEO & Redirection settings from another plugin to Rank Math? =
457
+ Absolutely. Rank Math has a built-in feature to import SEO settings from the most popular SEO plugins like Yoast SEO, Yoast SEO Premium, AIO SEO Pack, All In One Schema Rich Snippets, and Redirection. Once you install Rank Math and run the setup wizard, you'll see a dedicated step where you'll get to import all your SEO settings to Rank Math.
458
 
459
+ = What themes does Rank Math support? =
460
+ Rank Math has been tested with many WordPress themes and supports all major WordPress themes. Since we follow WordPress' plugin development guidelines, you can rest assured that Rank Math will work perfectly, no matter what theme you use. If you've installed Rank Math and are facing issues, it might not be because of theme incompatibility. Please get in touch with the support team by opening a support ticket in our support forum, and we will fix it for you.
461
 
462
+ = What plugins is Rank Math compatible with? =
463
+ Rank Math has been designed using WordPress' strict plugin development guidelines and therefore, is compatible with the majority of plugins. However, if you use another SEO plugin that performs any of the functions that Rank Math does, then you might get unexpected results. We recommend that you disable or delete other SEO plugins for best results.
464
 
465
+ = Will my website slow down if I Install Rank Math? =
466
+ No. Rank Math's code has been created and optimized for maximum performance. That is why using Rank Math on your website will not slow down your website. On the contrary, there is a good chance that your website will perform better than ever with Rank Math, as it does the job of multiple plugins. Once you remove the unnecessary plugins from your website, your website's performance is sure to get better.
467
 
468
+ = Is creating a Rank Math account needed to use the plugin? =
469
+ Absolutely not. Creating a FREE Rank Math account is needed only to utilize our API via which one can get automatic keyword suggestions from Google and can run SEO Site Analysis inside WordPress. <a href="https://rankmath.com/kb/free-account-benefits/" target="_blank">You can read more about that here.</a>
470
 
471
+ = Will you set up Rank Math on my website? =
472
+ Rank Math is pretty easy to set up on your website. Apart from detailed instructions on how to install Rank Math on our website, we've built in a user-friendly setup wizard that will help you set up and configure Rank Math perfectly for your website. If you face any issues even after using the setup wizard, please get in touch with the support team by sending an email to support@rankmath.com
473
 
474
+ = Do I have to remove other SEO plugins if I install Rank Math? =
475
+ That is recommended. Rank Math is designed to be an all-in-one SEO plugin that takes care of everything SEO-related. If you use other SEO plugins with Rank Math on your website, not only will the performance of your website be negatively affected, but both plugins working together can produce unexpected SEO results.
476
 
477
+ = I already use an SEO plugin. Can I use Rank Math on top of that plugin? =
478
+ You can, but we do not recommend it. Rank Math has all the functionalities that you would need in an SEO plugin. If you still prefer using another plugin for a specific feature, you can do that. But, we would recommend that you turn off that functionality of Rank Math to avoid potential conflicts/issues.
479
 
480
+ = Will I lose my rankings if I switch to Rank Math? =
481
+ No, you won't. When you install Rank Math, it will seamlessly import your settings from your current SEO plugin. Once the process is complete, the search engines won't even notice a change on your website.
482
 
483
+ If you set up Rank Math from scratch, then your search engine rankings will depend on how you configure it. But please be advised that Google and other search engines prefer good, useful content over anything else.
484
 
485
+ = What are the technical requirements for using Rank Math? =
486
+ Rank Math requires at least PHP 7.2, cURL lib, cron jobs, to be installed and enabled on the server. Those things are mostly installed on every good hosting server. When you initiate Rank Math's setup process, Rank Math will also perform a compatibility check to confirm if your server can run Rank Math. If your server has a lower configuration of any Software, please ask your hosting to update it to the latest version.
487
 
488
+ = Can I use Rank Math on a WordPress.com website? =
489
  Yes, as the plugin is provided through WordPress.org, it is available on WordPress.com as well. However, you might be required to opt for the Business plan of WordPress.com
490
 
491
  = Which Schema type is best for coupon websites? =
498
 
499
  = How do I noindex inner paginated posts of a website? =
500
 
501
+ Rank Math makes it extremely simple and easy to NoIndex the paginated series’ of your homepage, archives, or single posts.
502
 
503
+ Head over to WordPress Dashboard > Rank Math > Titles & Meta > Misc. Pages.
504
 
505
  Scroll down a bit and you will see the `NoIndex Paginated Pages` option.
506
 
509
  Now, your paginated pages like `/page/2` etc. will no longer appear in Search Engines.
510
 
511
  = The tag "rel=canonical" appears more than once in the document =
512
+ That must be coming from the theme's code or some other SEO/AMP plugin as the Rank Math plugin adds only one canonical URL per page.
513
 
514
  You should try disabling all other plugins and/or switch to a different theme and check.
515
 
519
  On the contrary, BlogPosting Schema is used for blog posts. They can be personal or commercial in nature. Most of the non-professional blogs you see online use this Schema type.
520
 
521
  = Why is Google not showing the Schema data? =
522
+ For the Rich Snippet data, Rank Math plugin adds the necessary markup for rich snippets. It may take some time before they show up in the search results. Please allow a few days for Google to pick up the new information.
523
 
524
  Google WILL NOT necessarily show the Schema data though. They check a few things first and may choose not to show your rich schema. For instance, they check the overall quality of the site, and if the Schema content is representative of the main content of the page or not.
525
 
531
  = Why is the Carousel or Data Highlighter Not Working? =
532
  Google can actually extract content from your pages and display it as a rich carousel (AMP or not).
533
 
534
+ But to make it easier, the best you can do is to use the Data Highlighter option in your Search Appearance tab in Webmaster Tools for your important pages (especially the pillar posts) but not on all content types. Rank Math makes it extremely convenient to do so.
535
 
536
  To learn more about using this feature, visit <a href="https://s.rankmath.com/googledatahighlighter" target="_blank">https://s.rankmath.com/googledatahighlighter</a>
537
 
572
  6. Support for 15+ Rich Snippet types.
573
  7. No need to pay for any service when you can track keyword ranking change from our own Search Console.
574
  8. Comes with in-built options for social media optimization.
575
+ 9. Rank Math Comes with a 404 monitor and easy-to-use Redirection Manager.
576
  10. Ground Breaking Integration with Elementor Page Builder.
577
  11. Powerful XML Sitemap.
578
  12. Role Manager gives you full control. Useful for multi-author sites.
579
+ 13. Rank Math Comes with 15+ FREE modules.
580
 
581
  == Changelog ==
582
 
597
  = 1.0.98.1 [Sep 22, 2022] =
598
  * Fixed: Strict PHP 7.2 error. It is recommended to update the PHP version to at least 7.4.
599
 
600
+ = 1.0.98.2 [Sep 24, 2022] =
601
+ * Fixed: Clicking on the [Questions tab of Content AI](https://rankmath.com/kb/how-to-use-content-ai/#questions) was crashing the editor on some setups
602
+ * Fixed: Button to open the Rank Math modal was not working in the [Divi's Frontend editor](https://rankmath.com/blog/divi-seo/) on some installations
603
+ * Fixed: Error in console when [Frontend Stats Bar](https://rankmath.com/kb/analytics-stats-bar/#num-2-2-enable-stats) option was enabled
604
+
605
  **Note:** From the next update, we will stop supporting older versions.
606
 
607
+ Full changelog can be found here - **[Rank Math changelog](https://rankmath.com/changelog/?utm_source=Plugin&utm_medium=Changelog&utm_campaign=WP)**
vendor/composer/installed.php CHANGED
@@ -1,9 +1,9 @@
1
  <?php return array(
2
  'root' => array(
3
  'name' => 'rankmath/seo-by-rank-math',
4
- 'pretty_version' => '1.0.98.1-dev',
5
- 'version' => '1.0.98.1-dev',
6
- 'reference' => 'c47a4fc3a781053bd599912fcffabeca80732698',
7
  'type' => 'wordpress-plugin',
8
  'install_path' => __DIR__ . '/../../',
9
  'aliases' => array(),
@@ -47,9 +47,9 @@
47
  'dev_requirement' => false,
48
  ),
49
  'rankmath/seo-by-rank-math' => array(
50
- 'pretty_version' => '1.0.98.1-dev',
51
- 'version' => '1.0.98.1-dev',
52
- 'reference' => 'c47a4fc3a781053bd599912fcffabeca80732698',
53
  'type' => 'wordpress-plugin',
54
  'install_path' => __DIR__ . '/../../',
55
  'aliases' => array(),
1
  <?php return array(
2
  'root' => array(
3
  'name' => 'rankmath/seo-by-rank-math',
4
+ 'pretty_version' => '1.0.98.2-dev',
5
+ 'version' => '1.0.98.2-dev',
6
+ 'reference' => '8fcc3c87ae962fb3c6589ec71b43dfc0582d9914',
7
  'type' => 'wordpress-plugin',
8
  'install_path' => __DIR__ . '/../../',
9
  'aliases' => array(),
47
  'dev_requirement' => false,
48
  ),
49
  'rankmath/seo-by-rank-math' => array(
50
+ 'pretty_version' => '1.0.98.2-dev',
51
+ 'version' => '1.0.98.2-dev',
52
+ 'reference' => '8fcc3c87ae962fb3c6589ec71b43dfc0582d9914',
53
  'type' => 'wordpress-plugin',
54
  'install_path' => __DIR__ . '/../../',
55
  'aliases' => array(),