diff --git a/README.md b/README.md
index c89f102d8..ff27d608f 100644
--- a/README.md
+++ b/README.md
@@ -314,16 +314,6 @@ These rules relate to this plugin works:
| [@ota-meshi/svelte/comment-directive](https://ota-meshi.github.io/eslint-plugin-svelte/rules/comment-directive/) | support comment-directives in HTML template | :star: |
| [@ota-meshi/svelte/system](https://ota-meshi.github.io/eslint-plugin-svelte/rules/system/) | system rule for working this plugin | :star: |
-## Deprecated
-
-- :warning: We're going to remove deprecated rules in the next major release. Please migrate to successor/new rules.
-- :innocent: We don't fix bugs which are in deprecated rules since we don't have enough resources.
-
-| Rule ID | Replaced by |
-|:--------|:------------|
-| [@ota-meshi/svelte/dollar-prefixed-store-uses-vars](https://ota-meshi.github.io/eslint-plugin-svelte/rules/dollar-prefixed-store-uses-vars/) | (no replacement) |
-| [@ota-meshi/svelte/no-non-optimized-style-attributes](https://ota-meshi.github.io/eslint-plugin-svelte/rules/no-non-optimized-style-attributes/) | [@ota-meshi/svelte/require-optimized-style-attribute](https://ota-meshi.github.io/eslint-plugin-svelte/rules/require-optimized-style-attribute/) |
-
diff --git a/docs/rules.md b/docs/rules.md
index 58278116c..30d67b963 100644
--- a/docs/rules.md
+++ b/docs/rules.md
@@ -78,13 +78,3 @@ These rules relate to this plugin works:
|:--------|:------------|:---|
| [@ota-meshi/svelte/comment-directive](./rules/comment-directive.md) | support comment-directives in HTML template | :star: |
| [@ota-meshi/svelte/system](./rules/system.md) | system rule for working this plugin | :star: |
-
-## Deprecated
-
-- :warning: We're going to remove deprecated rules in the next major release. Please migrate to successor/new rules.
-- :innocent: We don't fix bugs which are in deprecated rules since we don't have enough resources.
-
-| Rule ID | Replaced by |
-|:--------|:------------|
-| [@ota-meshi/svelte/dollar-prefixed-store-uses-vars](./rules/dollar-prefixed-store-uses-vars.md) | (no replacement) |
-| [@ota-meshi/svelte/no-non-optimized-style-attributes](./rules/no-non-optimized-style-attributes.md) | [@ota-meshi/svelte/require-optimized-style-attribute](./rules/require-optimized-style-attribute.md) |
diff --git a/docs/rules/dollar-prefixed-store-uses-vars.md b/docs/rules/dollar-prefixed-store-uses-vars.md
deleted file mode 100644
index cc1cf7ecd..000000000
--- a/docs/rules/dollar-prefixed-store-uses-vars.md
+++ /dev/null
@@ -1,57 +0,0 @@
----
-pageClass: "rule-details"
-sidebarDepth: 0
-title: "@ota-meshi/svelte/dollar-prefixed-store-uses-vars"
-description: "prevent $-prefixed variables to be marked as unused"
-since: "v0.18.0"
----
-
-# @ota-meshi/svelte/dollar-prefixed-store-uses-vars
-
-> prevent $-prefixed variables to be marked as unused
-
-- :warning: This rule was **deprecated**.
-
-::: tip
-
-This rule is not needed when using `svelte-eslint-parser` v0.14.0 or later.
-
-:::
-
-ESLint `no-unused-vars` rule does not detect store variables used as $-prefixed.
-This rule will find imported store variables that are used as $-prefixed and marks them as used.
-
-This rule only has an effect when the `no-unused-vars` rule is enabled.
-
-## :book: Rule Details
-
-Without this rule this code triggers warning:
-
-
-
-
-
-```svelte
-
-```
-
-
-
-## :wrench: Options
-
-Nothing.
-
-## :rocket: Version
-
-This rule was introduced in @ota-meshi/eslint-plugin-svelte v0.18.0
-
-## :mag: Implementation
-
-- [Rule source](https://github.com/ota-meshi/eslint-plugin-svelte/blob/main/src/rules/dollar-prefixed-store-uses-vars.ts)
-- [Test source](https://github.com/ota-meshi/eslint-plugin-svelte/blob/main/tests/src/rules/dollar-prefixed-store-uses-vars.ts)
diff --git a/docs/rules/no-non-optimized-style-attributes.md b/docs/rules/no-non-optimized-style-attributes.md
deleted file mode 100644
index 9d10ccb4c..000000000
--- a/docs/rules/no-non-optimized-style-attributes.md
+++ /dev/null
@@ -1,22 +0,0 @@
----
-pageClass: "rule-details"
-sidebarDepth: 0
-title: "@ota-meshi/svelte/no-non-optimized-style-attributes"
-description: "require style attributes that can be optimized"
-since: "v0.31.0"
----
-
-# @ota-meshi/svelte/no-non-optimized-style-attributes
-
-> require style attributes that can be optimized
-
-- :warning: This rule was **deprecated** and replaced by [@ota-meshi/svelte/require-optimized-style-attribute](require-optimized-style-attribute.md) rule.
-
-## :rocket: Version
-
-This rule was introduced in @ota-meshi/eslint-plugin-svelte v0.31.0
-
-## :mag: Implementation
-
-- [Rule source](https://github.com/ota-meshi/eslint-plugin-svelte/blob/main/src/rules/no-non-optimized-style-attributes.ts)
-- [Test source](https://github.com/ota-meshi/eslint-plugin-svelte/blob/main/tests/src/rules/no-non-optimized-style-attributes.ts)
diff --git a/src/rules/dollar-prefixed-store-uses-vars.ts b/src/rules/dollar-prefixed-store-uses-vars.ts
deleted file mode 100644
index f34da3fc6..000000000
--- a/src/rules/dollar-prefixed-store-uses-vars.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-import type * as ESTree from "estree"
-import { createRule } from "../utils"
-import { findVariable } from "../utils/ast-utils"
-
-export default createRule("dollar-prefixed-store-uses-vars", {
- meta: {
- docs: {
- description: "prevent $-prefixed variables to be marked as unused",
- category: "System",
- recommended: "base",
- },
- schema: [],
- messages: {},
- type: "problem",
- deprecated: true, // This rule is not needed when using svelte-eslint-parser@v0.14.0 or later.
- },
- create(context) {
- if (!context.parserServices.isSvelte) {
- return {}
- }
-
- /** Process identifier */
- function processId(node: ESTree.Identifier) {
- const variable = findVariable(context, node)
- if (!variable) {
- return
- }
- for (const reference of variable.references) {
- if (
- reference.identifier.name.startsWith("$") &&
- reference.identifier.name.slice(1) === node.name
- ) {
- context.markVariableAsUsed(node.name)
- break
- }
- }
- }
-
- return {
- "ImportDefaultSpecifier > Identifier": processId,
- "ImportSpecifier > Identifier.local": processId,
- "ImportNamespaceSpecifier > Identifier": processId,
- }
- },
-})
diff --git a/src/rules/no-non-optimized-style-attributes.ts b/src/rules/no-non-optimized-style-attributes.ts
deleted file mode 100644
index daaed7402..000000000
--- a/src/rules/no-non-optimized-style-attributes.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { createRule } from "../utils"
-import rule from "./require-optimized-style-attribute"
-
-export default createRule("no-non-optimized-style-attributes", {
- meta: {
- docs: {
- ...rule.meta.docs,
- recommended: false,
- },
- schema: rule.meta.schema,
- messages: rule.meta.messages,
- type: rule.meta.type,
- deprecated: true,
- replacedBy: ["require-optimized-style-attribute"],
- },
- create: rule.create,
-})
diff --git a/src/utils/rules.ts b/src/utils/rules.ts
index ecc8c37fa..19fe075fd 100644
--- a/src/utils/rules.ts
+++ b/src/utils/rules.ts
@@ -1,7 +1,6 @@
import type { RuleModule } from "../types"
import buttonHasType from "../rules/button-has-type"
import commentDirective from "../rules/comment-directive"
-import dollarPrefixedStoreUsesVars from "../rules/dollar-prefixed-store-uses-vars"
import firstAttributeLinebreak from "../rules/first-attribute-linebreak"
import htmlQuotes from "../rules/html-quotes"
import indent from "../rules/indent"
@@ -13,7 +12,6 @@ import noDupeElseIfBlocks from "../rules/no-dupe-else-if-blocks"
import noDupeStyleProperties from "../rules/no-dupe-style-properties"
import noDynamicSlotName from "../rules/no-dynamic-slot-name"
import noInnerDeclarations from "../rules/no-inner-declarations"
-import noNonOptimizedStyleAttributes from "../rules/no-non-optimized-style-attributes"
import noNotFunctionHandler from "../rules/no-not-function-handler"
import noObjectInTextMustaches from "../rules/no-object-in-text-mustaches"
import noShorthandStylePropertyOverrides from "../rules/no-shorthand-style-property-overrides"
@@ -33,7 +31,6 @@ import validCompile from "../rules/valid-compile"
export const rules = [
buttonHasType,
commentDirective,
- dollarPrefixedStoreUsesVars,
firstAttributeLinebreak,
htmlQuotes,
indent,
@@ -45,7 +42,6 @@ export const rules = [
noDupeStyleProperties,
noDynamicSlotName,
noInnerDeclarations,
- noNonOptimizedStyleAttributes,
noNotFunctionHandler,
noObjectInTextMustaches,
noShorthandStylePropertyOverrides,
diff --git a/tests/fixtures/rules/no-non-optimized-style-attributes/invalid/comment01-errors.json b/tests/fixtures/rules/no-non-optimized-style-attributes/invalid/comment01-errors.json
deleted file mode 100644
index 24654c280..000000000
--- a/tests/fixtures/rules/no-non-optimized-style-attributes/invalid/comment01-errors.json
+++ /dev/null
@@ -1,7 +0,0 @@
-[
- {
- "message": "It cannot be optimized because contains comments.",
- "line": 5,
- "column": 30
- }
-]
diff --git a/tests/fixtures/rules/no-non-optimized-style-attributes/invalid/comment01-input.svelte b/tests/fixtures/rules/no-non-optimized-style-attributes/invalid/comment01-input.svelte
deleted file mode 100644
index 4243c324b..000000000
--- a/tests/fixtures/rules/no-non-optimized-style-attributes/invalid/comment01-input.svelte
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/tests/fixtures/rules/no-non-optimized-style-attributes/invalid/key01-errors.json b/tests/fixtures/rules/no-non-optimized-style-attributes/invalid/key01-errors.json
deleted file mode 100644
index c5e24908b..000000000
--- a/tests/fixtures/rules/no-non-optimized-style-attributes/invalid/key01-errors.json
+++ /dev/null
@@ -1,7 +0,0 @@
-[
- {
- "message": "It cannot be optimized because property of style declaration contain interpolation.",
- "line": 6,
- "column": 30
- }
-]
diff --git a/tests/fixtures/rules/no-non-optimized-style-attributes/invalid/key01-input.svelte b/tests/fixtures/rules/no-non-optimized-style-attributes/invalid/key01-input.svelte
deleted file mode 100644
index 7b7d29c42..000000000
--- a/tests/fixtures/rules/no-non-optimized-style-attributes/invalid/key01-input.svelte
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
diff --git a/tests/fixtures/rules/no-non-optimized-style-attributes/invalid/test01-errors.json b/tests/fixtures/rules/no-non-optimized-style-attributes/invalid/test01-errors.json
deleted file mode 100644
index 77abc442a..000000000
--- a/tests/fixtures/rules/no-non-optimized-style-attributes/invalid/test01-errors.json
+++ /dev/null
@@ -1,22 +0,0 @@
-[
- {
- "message": "It cannot be optimized because too complex.",
- "line": 14,
- "column": 12
- },
- {
- "message": "It cannot be optimized because too complex.",
- "line": 17,
- "column": 46
- },
- {
- "message": "It cannot be optimized because contains comments.",
- "line": 20,
- "column": 30
- },
- {
- "message": "It cannot be optimized because property of style declaration contain interpolation.",
- "line": 21,
- "column": 30
- }
-]
diff --git a/tests/fixtures/rules/no-non-optimized-style-attributes/invalid/test01-input.svelte b/tests/fixtures/rules/no-non-optimized-style-attributes/invalid/test01-input.svelte
deleted file mode 100644
index 3a691c653..000000000
--- a/tests/fixtures/rules/no-non-optimized-style-attributes/invalid/test01-input.svelte
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/fixtures/rules/no-non-optimized-style-attributes/valid/test01-input.svelte b/tests/fixtures/rules/no-non-optimized-style-attributes/valid/test01-input.svelte
deleted file mode 100644
index 495962567..000000000
--- a/tests/fixtures/rules/no-non-optimized-style-attributes/valid/test01-input.svelte
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
diff --git a/tests/src/rules/no-non-optimized-style-attributes.ts b/tests/src/rules/no-non-optimized-style-attributes.ts
deleted file mode 100644
index 925204716..000000000
--- a/tests/src/rules/no-non-optimized-style-attributes.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { RuleTester } from "eslint"
-import rule from "../../../src/rules/no-non-optimized-style-attributes"
-import { loadTestCases } from "../../utils/utils"
-
-const tester = new RuleTester({
- parserOptions: {
- ecmaVersion: 2020,
- sourceType: "module",
- },
-})
-
-tester.run(
- "no-non-optimized-style-attributes",
- rule as any,
- loadTestCases("no-non-optimized-style-attributes"),
-)