By default TinyMCE, the (visual) editor of WordPress, strips schema microdata from input. There are plugins (example) that will prevent this behaviour. Or you can do it yourself by adding this snippet to your functions.php (docs): function wpse238918_allow_schema ($in) { if(!empty($in[‘extended_valid_elements’])) $in[‘extended_valid_elements’] .= ‘,’; $in[‘extended_valid_elements’] .= ‘@[id|class|style|title|itemscope|itemtype|itemprop|datetime|rel],div,dl,ul,dt,dd,li,span,a|rev|charset|href|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur]’; return $in; } add_filter(‘tiny_mce_before_init’, ‘wpse238918_allow_schema’ );